diff --git a/cmake/LibiglWindows.cmake b/cmake/LibiglWindows.cmake index b98aa55..46c68a7 100644 --- a/cmake/LibiglWindows.cmake +++ b/cmake/LibiglWindows.cmake @@ -1,4 +1,4 @@ -if(MSVC) +if(0) option(IGL_STATIC_RUNTIME "Use libigl with the static MSVC runtime." OFF) if(IGL_STATIC_RUNTIME) message(STATUS "MSVC -> forcing use of statically-linked runtime.") diff --git a/cmake/libigl.cmake b/cmake/libigl.cmake index 6de1b41..46ecbf0 100644 --- a/cmake/libigl.cmake +++ b/cmake/libigl.cmake @@ -107,7 +107,8 @@ if(HUNTER_ENABLED) endif() # Eigen -if(NOT TARGET Eigen3::Eigen) +find_package(Eigen3 CONFIG REQUIRED) +if(0) igl_download_eigen() add_library(igl_eigen INTERFACE) target_include_directories(igl_eigen SYSTEM INTERFACE @@ -296,9 +297,9 @@ endif() ################################################################################ ### Compile the embree part ### if(LIBIGL_WITH_EMBREE) - set(EMBREE_DIR "${LIBIGL_EXTERNAL}/embree") + find_package(embree 3 CONFIG REQUIRED) - if(NOT TARGET embree) + if(0) igl_download_embree() # Note: On macOS, building embree as a static lib can only be done with a single ISA target. @@ -317,8 +318,11 @@ if(LIBIGL_WITH_EMBREE) compile_igl_module("embree") target_link_libraries(igl_embree ${IGL_SCOPE} embree) - target_include_directories(igl_embree ${IGL_SCOPE} ${EMBREE_DIR}/include) - target_compile_definitions(igl_embree ${IGL_SCOPE} -DEMBREE_STATIC_LIB) + if(LIBIGL_USE_STATIC_LIBRARY) + find_package(TBB CONFIG REQUIRED) + target_link_libraries(igl_embree ${IGL_SCOPE} TBB::tbb) + target_compile_definitions(igl_embree ${IGL_SCOPE} -DEMBREE_STATIC_LIB) + endif() endif() ################################################################################ @@ -359,11 +363,12 @@ if(LIBIGL_WITH_OPENGL) endif() # glad module - if(NOT TARGET glad) + find_package(glad CONFIG REQUIRED) + if(0) igl_download_glad() add_subdirectory(${LIBIGL_EXTERNAL}/glad glad) endif() - target_link_libraries(igl_opengl ${IGL_SCOPE} glad) + target_link_libraries(igl_opengl ${IGL_SCOPE} glad::glad) endif() ################################################################################ @@ -372,7 +377,8 @@ if(LIBIGL_WITH_OPENGL_GLFW) if(TARGET igl::opengl) # GLFW module compile_igl_module("opengl/glfw") - if(NOT TARGET glfw) + find_package(glfw3 CONFIG REQUIRED) + if(0) igl_download_glfw() option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" OFF) option(GLFW_BUILD_TESTS "Build the GLFW test programs" OFF) @@ -395,17 +401,19 @@ if(LIBIGL_WITH_OPENGL_GLFW_IMGUI) if(TARGET igl::opengl_glfw) # ImGui module compile_igl_module("opengl/glfw/imgui") - if(NOT TARGET imgui) + find_package(imgui CONFIG REQUIRED) + if(0) igl_download_imgui() add_subdirectory(${LIBIGL_EXTERNAL}/libigl-imgui imgui) endif() - if(NOT TARGET imguizmo) + find_package(imguizmo CONFIG REQUIRED) + if(0) igl_download_imguizmo() add_library(imguizmo ${LIBIGL_EXTERNAL}/imguizmo/ImGuizmo.cpp ${LIBIGL_EXTERNAL}/imguizmo/ImGuizmo.h) target_compile_features(imguizmo PUBLIC cxx_std_11) target_link_libraries(imguizmo PUBLIC imgui) endif() - target_link_libraries(igl_opengl_glfw_imgui ${IGL_SCOPE} igl_opengl_glfw imgui imguizmo) + target_link_libraries(igl_opengl_glfw_imgui ${IGL_SCOPE} igl_opengl_glfw imgui::imgui imguizmo::imguizmo) endif() endif() @@ -415,12 +423,22 @@ if(LIBIGL_WITH_PNG) # png/ module is anomalous because it also depends on opengl it really should # be moved into the opengl/ directory and namespace ... if(TARGET igl_opengl) - if(NOT TARGET stb_image) + find_path(stb_include_dir stb.h) + find_package(opengl REQUIRED) + find_package(libpng CONFIG REQUIRED) + find_package(glad CONFIG REQUIRED) + if (BUILD_SHARED_LIBS) + set(libpng_LIBRARIES png) + else() + set(libpng_LIBRARIES png_static) + endif() + if(0) igl_download_stb() add_subdirectory(${LIBIGL_EXTERNAL}/stb stb_image) endif() compile_igl_module("png" "") - target_link_libraries(igl_png ${IGL_SCOPE} igl_stb_image igl_opengl) + target_include_directories(igl_png INTERFACE ${stb_include_dir}) + target_link_libraries(igl_png ${IGL_SCOPE} OpenGL::GL ${libpng_LIBRARIES} glad::glad) endif() endif() @@ -468,7 +486,8 @@ endif() ### Compile the xml part ### if(LIBIGL_WITH_XML) set(TINYXML2_DIR "${LIBIGL_EXTERNAL}/tinyxml2") - if(NOT TARGET tinyxml2) + find_package(tinyxml2 CONFIG REQUIRED) + if(0) igl_download_tinyxml2() add_library(tinyxml2 STATIC ${TINYXML2_DIR}/tinyxml2.cpp ${TINYXML2_DIR}/tinyxml2.h) target_include_directories(tinyxml2 PUBLIC ${TINYXML2_DIR}) @@ -478,8 +497,7 @@ if(LIBIGL_WITH_XML) SOVERSION "3") endif() compile_igl_module("xml") - target_link_libraries(igl_xml ${IGL_SCOPE} tinyxml2) - target_include_directories(igl_xml ${IGL_SCOPE} ${TINYXML2_DIR}) + target_link_libraries(igl_xml ${IGL_SCOPE} tinyxml2::tinyxml2) endif() ################################################################################ diff --git a/include/igl/opengl/glfw/imgui/ImGuiHelpers.h b/include/igl/opengl/glfw/imgui/ImGuiHelpers.h index 0663390..f35f097 100644 --- a/include/igl/opengl/glfw/imgui/ImGuiHelpers.h +++ b/include/igl/opengl/glfw/imgui/ImGuiHelpers.h @@ -10,7 +10,7 @@ //////////////////////////////////////////////////////////////////////////////// #include "ImGuiTraits.h" -#include +#include #include #include #include diff --git a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp b/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp index c91c1cc..0836142 100644 --- a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp +++ b/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp @@ -9,7 +9,7 @@ #include "ImGuiMenu.h" #include "ImGuiHelpers.h" #include -#include +#include #include #include #include diff --git a/include/igl/opengl/glfw/imgui/ImGuiTraits.h b/include/igl/opengl/glfw/imgui/ImGuiTraits.h index 7dae22a..e6911c5 100644 --- a/include/igl/opengl/glfw/imgui/ImGuiTraits.h +++ b/include/igl/opengl/glfw/imgui/ImGuiTraits.h @@ -8,7 +8,7 @@ #ifndef IGL_OPENGL_GLFW_IMGUI_IMGUITRAITS_H #define IGL_OPENGL_GLFW_IMGUI_IMGUITRAITS_H -#include +#include // Extend ImGui by populating its namespace directly namespace ImGui diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2410c19..a7659a3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -15,12 +15,11 @@ igl_download_test_data() set(IGL_TEST_DATA ${LIBIGL_EXTERNAL}/../tests/data) ### Download Catch2 unit test framework -igl_download_catch2() +find_package(Catch2 CONFIG REQUIRED) list(APPEND CMAKE_MODULE_PATH ${LIBIGL_EXTERNAL}/catch2/contrib) # Add catch2 -add_subdirectory(${LIBIGL_EXTERNAL}/catch2 catch2) # Create test executable diff --git a/tutorial/106_ViewerMenu/main.cpp b/tutorial/106_ViewerMenu/main.cpp index a8e49d6..c7946f9 100644 --- a/tutorial/106_ViewerMenu/main.cpp +++ b/tutorial/106_ViewerMenu/main.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include "tutorial_shared_path.h"