|
@@ -1,22 +1,34 @@
|
|
|
cmake_minimum_required(VERSION 3.1)
|
|
|
|
|
|
+### Find packages to populate default options ###
|
|
|
+#
|
|
|
+# COMPONENTS should match subsequent calls
|
|
|
+find_package(CGAL COMPONENTS Core) # --> CGAL_FOUND
|
|
|
+find_package(Boost 1.48 COMPONENTS thread system) # --> BOOST_FOUND
|
|
|
+if(CGAL_FOUND AND BOOST_FOUND)
|
|
|
+ set(CGAL_AND_BOOST_FOUND TRUE)
|
|
|
+endif()
|
|
|
+find_package(Matlab COMPONENTS MEX_COMPILER MX_LIBRARY ENG_LIBRARY) # --> Matlab_FOUND
|
|
|
+find_package(MOSEK) # --> MOSEK_FOUND
|
|
|
+find_package(OpenGL) # --> OPENGL_FOUND
|
|
|
+
|
|
|
### Available options ###
|
|
|
option(LIBIGL_USE_STATIC_LIBRARY "Use libigl as static library" OFF)
|
|
|
option(LIBIGL_WITH_ANTTWEAKBAR "Use AntTweakBar" OFF)
|
|
|
-option(LIBIGL_WITH_CGAL "Use CGAL" ON)
|
|
|
+option(LIBIGL_WITH_CGAL "Use CGAL" "${CGAL_AND_BOOST_FOUND}")
|
|
|
option(LIBIGL_WITH_COMISO "Use CoMiso" ON)
|
|
|
option(LIBIGL_WITH_CORK "Use Cork" OFF)
|
|
|
option(LIBIGL_WITH_EMBREE "Use Embree" OFF)
|
|
|
option(LIBIGL_WITH_LIM "Use LIM" ON)
|
|
|
-option(LIBIGL_WITH_MATLAB "Use Matlab" ON)
|
|
|
-option(LIBIGL_WITH_MOSEK "Use MOSEK" ON)
|
|
|
+option(LIBIGL_WITH_MATLAB "Use Matlab" "${Matlab_FOUND}")
|
|
|
+option(LIBIGL_WITH_MOSEK "Use MOSEK" "${MOSEK_FOUND}")
|
|
|
option(LIBIGL_WITH_NANOGUI "Use Nanogui menu" OFF)
|
|
|
-option(LIBIGL_WITH_OPENGL "Use OpenGL" ON)
|
|
|
-option(LIBIGL_WITH_OPENGL_GLFW "Use GLFW" ON)
|
|
|
+option(LIBIGL_WITH_OPENGL "Use OpenGL" "${OPENGL_FOUND}")
|
|
|
+option(LIBIGL_WITH_OPENGL_GLFW "Use GLFW" "${OPENGL_FOUND}")
|
|
|
option(LIBIGL_WITH_PNG "Use PNG" ON)
|
|
|
option(LIBIGL_WITH_TETGEN "Use Tetgen" ON)
|
|
|
option(LIBIGL_WITH_TRIANGLE "Use Triangle" ON)
|
|
|
-option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" ON)
|
|
|
+option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" "${OPENGL_FOUND}")
|
|
|
option(LIBIGL_WITH_XML "Use XML" ON)
|
|
|
option(LIBIGL_WITH_PYTHON "Use Python" OFF)
|
|
|
|
|
@@ -136,19 +148,15 @@ endif()
|
|
|
if(LIBIGL_WITH_CGAL)
|
|
|
# CGAL Core is needed for
|
|
|
# `Exact_predicates_exact_constructions_kernel_with_sqrt`
|
|
|
- find_package(CGAL COMPONENTS Core)
|
|
|
- if(CGAL_FOUND)
|
|
|
- compile_igl_module("cgal")
|
|
|
- if(WIN32)
|
|
|
- set(Boost_USE_STATIC_LIBS ON) # Favor static Boost libs on Windows
|
|
|
- endif()
|
|
|
- target_include_directories(igl_cgal ${IGL_SCOPE} "${GMP_INCLUDE_DIR}" "${MPFR_INCLUDE_DIR}")
|
|
|
- find_package(Boost 1.48 REQUIRED thread system)
|
|
|
- target_include_directories(igl_cgal ${IGL_SCOPE} ${CGAL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
|
|
|
- target_link_libraries(igl_cgal ${IGL_SCOPE} CGAL::CGAL CGAL::CGAL_Core ${Boost_LIBRARIES})
|
|
|
- else()
|
|
|
- set(LIBIGL_WITH_CGAL OFF CACHE BOOL "" FORCE)
|
|
|
+ find_package(CGAL REQUIRED COMPONENTS Core)
|
|
|
+ compile_igl_module("cgal")
|
|
|
+ if(WIN32)
|
|
|
+ set(Boost_USE_STATIC_LIBS ON) # Favor static Boost libs on Windows
|
|
|
endif()
|
|
|
+ target_include_directories(igl_cgal ${IGL_SCOPE} "${GMP_INCLUDE_DIR}" "${MPFR_INCLUDE_DIR}")
|
|
|
+ find_package(Boost 1.48 REQUIRED thread system)
|
|
|
+ target_include_directories(igl_cgal ${IGL_SCOPE} ${CGAL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
|
|
|
+ target_link_libraries(igl_cgal ${IGL_SCOPE} CGAL::CGAL CGAL::CGAL_Core ${Boost_LIBRARIES})
|
|
|
endif()
|
|
|
|
|
|
# Helper function for `igl_copy_cgal_dll()`
|
|
@@ -249,28 +257,20 @@ endif()
|
|
|
################################################################################
|
|
|
### Compile the matlab part ###
|
|
|
if(LIBIGL_WITH_MATLAB)
|
|
|
- find_package(Matlab)
|
|
|
- if(MATLAB_FOUND)
|
|
|
- compile_igl_module("matlab")
|
|
|
- target_link_libraries(igl_matlab ${IGL_SCOPE} ${MATLAB_LIBRARIES})
|
|
|
- target_include_directories(igl_matlab ${IGL_SCOPE} ${MATLAB_INCLUDE_DIR})
|
|
|
- else()
|
|
|
- set(LIBIGL_WITH_MATLAB OFF CACHE BOOL "" FORCE)
|
|
|
- endif()
|
|
|
+ find_package(Matlab REQUIRED COMPONENTS MEX_COMPILER MX_LIBRARY ENG_LIBRARY)
|
|
|
+ compile_igl_module("matlab")
|
|
|
+ target_link_libraries(igl_matlab ${IGL_SCOPE} ${MATLAB_LIBRARIES})
|
|
|
+ target_include_directories(igl_matlab ${IGL_SCOPE} ${MATLAB_INCLUDE_DIR})
|
|
|
endif()
|
|
|
|
|
|
################################################################################
|
|
|
### Compile the mosek part ###
|
|
|
if(LIBIGL_WITH_MOSEK)
|
|
|
- find_package(MOSEK)
|
|
|
- if(MOSEK_FOUND)
|
|
|
- compile_igl_module("mosek")
|
|
|
- target_link_libraries(igl_mosek ${IGL_SCOPE} ${MOSEK_LIBRARIES})
|
|
|
- target_include_directories(igl_mosek ${IGL_SCOPE} ${MOSEK_INCLUDE_DIRS})
|
|
|
- target_compile_definitions(igl_mosek ${IGL_SCOPE} -DLIBIGL_WITH_MOSEK)
|
|
|
- else()
|
|
|
- set(LIBIGL_WITH_MOSEK OFF CACHE BOOL "" FORCE)
|
|
|
- endif()
|
|
|
+ find_package(MOSEK REQUIRED)
|
|
|
+ compile_igl_module("mosek")
|
|
|
+ target_link_libraries(igl_mosek ${IGL_SCOPE} ${MOSEK_LIBRARIES})
|
|
|
+ target_include_directories(igl_mosek ${IGL_SCOPE} ${MOSEK_INCLUDE_DIRS})
|
|
|
+ target_compile_definitions(igl_mosek ${IGL_SCOPE} -DLIBIGL_WITH_MOSEK)
|
|
|
endif()
|
|
|
|
|
|
################################################################################
|