|
@@ -13,6 +13,7 @@ option(LIBIGL_WITH_MATLAB "Use Matlab" OFF)
|
|
option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF)
|
|
option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF)
|
|
option(LIBIGL_WITH_NANOGUI "Use Nanogui menu" OFF)
|
|
option(LIBIGL_WITH_NANOGUI "Use Nanogui menu" OFF)
|
|
option(LIBIGL_WITH_OPENGL "Use OpenGL" OFF)
|
|
option(LIBIGL_WITH_OPENGL "Use OpenGL" OFF)
|
|
|
|
+option(LIBIGL_WITH_OPENGL_GLFW "Use GLFW" OFF)
|
|
option(LIBIGL_WITH_PNG "Use PNG" OFF)
|
|
option(LIBIGL_WITH_PNG "Use PNG" OFF)
|
|
option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF)
|
|
option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF)
|
|
option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF)
|
|
option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF)
|
|
@@ -20,6 +21,10 @@ option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" OFF)
|
|
option(LIBIGL_WITH_XML "Use XML" OFF)
|
|
option(LIBIGL_WITH_XML "Use XML" OFF)
|
|
option(LIBIGL_WITH_PYTHON "Use Python" OFF)
|
|
option(LIBIGL_WITH_PYTHON "Use Python" OFF)
|
|
|
|
|
|
|
|
+if(LIBIGL_WITH_VIEWER AND (NOT LIBIGL_WITH_OPENGL_GLFW OR NOT LIBIGL_WITH_OPENGL) )
|
|
|
|
+ message(FATAL_ERROR "LIBIGL_WITH_VIEWER=ON requires LIBIGL_WITH_OPENGL_GLFW=ON and LIBIGL_WITH_OPENGL=ON")
|
|
|
|
+endif()
|
|
|
|
+
|
|
### Compilation configuration ###
|
|
### Compilation configuration ###
|
|
if(MSVC)
|
|
if(MSVC)
|
|
### Enable parallel compilation for Visual Studio
|
|
### Enable parallel compilation for Visual Studio
|
|
@@ -56,33 +61,26 @@ set(LIBIGL_ROOT "${PROJECT_SOURCE_DIR}/../..")
|
|
set(LIBIGL_SOURCE_DIR "${LIBIGL_ROOT}/include")
|
|
set(LIBIGL_SOURCE_DIR "${LIBIGL_ROOT}/include")
|
|
set(LIBIGL_EXTERNAL "${LIBIGL_ROOT}/external")
|
|
set(LIBIGL_EXTERNAL "${LIBIGL_ROOT}/external")
|
|
|
|
|
|
|
|
+### Multiple dependencies are buried in Nanogui
|
|
|
|
+set(NANOGUI_DIR "${LIBIGL_EXTERNAL}/nanogui")
|
|
|
|
+
|
|
### Eigen ###
|
|
### Eigen ###
|
|
-set(EIGEN_INCLUDE_DIR "${LIBIGL_EXTERNAL}/nanogui/ext/eigen")
|
|
|
|
|
|
+set(EIGEN_INCLUDE_DIR "${NANOGUI_DIR}/ext/eigen")
|
|
list(APPEND LIBIGL_INCLUDE_DIRS "${EIGEN_INCLUDE_DIR}")
|
|
list(APPEND LIBIGL_INCLUDE_DIRS "${EIGEN_INCLUDE_DIR}")
|
|
|
|
|
|
-macro(CompileIGL_Module module)
|
|
|
|
- file(GLOB SOURCES_IGL_${module}
|
|
|
|
- "${LIBIGL_SOURCE_DIR}/igl/${module}/*.cpp"
|
|
|
|
- )
|
|
|
|
- add_library(igl${module} STATIC ${SOURCES_IGL_${module}})
|
|
|
|
- target_include_directories(igl${module} PRIVATE ${EIGEN_INCLUDE_DIR})
|
|
|
|
- target_include_directories(igl${module} PRIVATE ${LIBIGL_SOURCE_DIR})
|
|
|
|
- target_compile_definitions(igl${module} PRIVATE -DIGL_STATIC_LIBRARY)
|
|
|
|
- list(APPEND LIBIGL_LIBRARIES "igl${module}")
|
|
|
|
-endmacro()
|
|
|
|
-
|
|
|
|
-macro(CompileIGL_Module_Copyleft module)
|
|
|
|
- file(GLOB SOURCES_IGL_${module}
|
|
|
|
- "${LIBIGL_SOURCE_DIR}/igl/copyleft/${module}/*.cpp"
|
|
|
|
|
|
+macro(CompileIGL_Module module_dir prefix)
|
|
|
|
+ string(REPLACE "/" "_" module_name "${module_dir}")
|
|
|
|
+ file(GLOB SOURCES_IGL_${module_name}
|
|
|
|
+ "${LIBIGL_SOURCE_DIR}/igl/${prefix}/${module_dir}/*.cpp"
|
|
)
|
|
)
|
|
- add_library(igl${module} STATIC ${SOURCES_IGL_${module}})
|
|
|
|
- target_include_directories(igl${module} PRIVATE ${EIGEN_INCLUDE_DIR})
|
|
|
|
- target_include_directories(igl${module} PRIVATE ${LIBIGL_SOURCE_DIR})
|
|
|
|
- target_compile_definitions(igl${module} PRIVATE -DIGL_STATIC_LIBRARY)
|
|
|
|
- list(APPEND LIBIGL_LIBRARIES "igl${module}")
|
|
|
|
|
|
+ set(module_lib_name igl_${module_name})
|
|
|
|
+ add_library(${module_lib_name} STATIC ${SOURCES_IGL_${module_name}})
|
|
|
|
+ target_include_directories(${module_lib_name} PRIVATE ${EIGEN_INCLUDE_DIR})
|
|
|
|
+ target_include_directories(${module_lib_name} PRIVATE ${LIBIGL_SOURCE_DIR})
|
|
|
|
+ target_compile_definitions(${module_lib_name} PRIVATE -DIGL_STATIC_LIBRARY)
|
|
|
|
+ list(APPEND LIBIGL_LIBRARIES "${module_lib_name}")
|
|
endmacro()
|
|
endmacro()
|
|
|
|
|
|
-
|
|
|
|
### IGL Common ###
|
|
### IGL Common ###
|
|
list(APPEND LIBIGL_INCLUDE_DIRS "${LIBIGL_SOURCE_DIR}")
|
|
list(APPEND LIBIGL_INCLUDE_DIRS "${LIBIGL_SOURCE_DIR}")
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
@@ -147,9 +145,8 @@ if(LIBIGL_WITH_ANTTWEAKBAR)
|
|
set(LIBIGL_ANTTWEAKBAR_EXTRA_LIBRARIES "AntTweakBar")
|
|
set(LIBIGL_ANTTWEAKBAR_EXTRA_LIBRARIES "AntTweakBar")
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_ANTTWEAKBAR_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_ANTTWEAKBAR_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("anttweakbar")
|
|
|
|
- target_include_directories(iglanttweakbar PRIVATE
|
|
|
|
- ${ANTTWEAKBAR_INCLUDE_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("anttweakbar" "")
|
|
|
|
+ target_include_directories(igl_anttweakbar PRIVATE ${ANTTWEAKBAR_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -167,8 +164,8 @@ if(LIBIGL_WITH_CGAL) # to be cleaned
|
|
list(APPEND LIBIGL_CGAL_EXTRA_LIBRARIES ${CGAL_LIBRARIES})
|
|
list(APPEND LIBIGL_CGAL_EXTRA_LIBRARIES ${CGAL_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_CGAL_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_CGAL_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module_Copyleft("cgal")
|
|
|
|
- target_include_directories(iglcgal PRIVATE
|
|
|
|
|
|
+ CompileIGL_Module("cgal" "copyleft/")
|
|
|
|
+ target_include_directories(igl_cgal PRIVATE
|
|
${CGAL_3RD_PARTY_INCLUDE_DIRS}
|
|
${CGAL_3RD_PARTY_INCLUDE_DIRS}
|
|
${CGAL_INCLUDE_DIRS})
|
|
${CGAL_INCLUDE_DIRS})
|
|
endif()
|
|
endif()
|
|
@@ -216,9 +213,9 @@ if(LIBIGL_WITH_COMISO)
|
|
"${CMAKE_CURRENT_BINARY_DIR}/../libquadmath-0.dll")
|
|
"${CMAKE_CURRENT_BINARY_DIR}/../libquadmath-0.dll")
|
|
endif()
|
|
endif()
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module_Copyleft("comiso")
|
|
|
|
- target_include_directories(iglcomiso PRIVATE ${COMISO_INCLUDE_DIRS})
|
|
|
|
- target_compile_definitions(iglcomiso PRIVATE -DINCLUDE_TEMPLATES)
|
|
|
|
|
|
+ CompileIGL_Module("comiso" "copyleft/")
|
|
|
|
+ target_include_directories(igl_comiso PRIVATE ${COMISO_INCLUDE_DIRS})
|
|
|
|
+ target_compile_definitions(igl_comiso PRIVATE -DINCLUDE_TEMPLATES)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -233,9 +230,8 @@ if(LIBIGL_WITH_CORK)
|
|
list(APPEND LIBIGL_CORK_EXTRA_LIBRARIES "cork")
|
|
list(APPEND LIBIGL_CORK_EXTRA_LIBRARIES "cork")
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_CORK_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_CORK_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module_Copyleft("cork")
|
|
|
|
- target_include_directories(iglcork PRIVATE
|
|
|
|
- ${CORK_INCLUDE_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("cork" "copyleft/")
|
|
|
|
+ target_include_directories(igl_cork PRIVATE ${CORK_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -259,9 +255,9 @@ if(LIBIGL_WITH_EMBREE)
|
|
list(APPEND LIBIGL_DEFINITIONS "-DENABLE_STATIC_LIB")
|
|
list(APPEND LIBIGL_DEFINITIONS "-DENABLE_STATIC_LIB")
|
|
|
|
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("embree")
|
|
|
|
- target_include_directories(iglembree PRIVATE ${EMBREE_DIR}/include)
|
|
|
|
- target_compile_definitions(iglembree PRIVATE -DENABLE_STATIC_LIB)
|
|
|
|
|
|
+ CompileIGL_Module("embree" "")
|
|
|
|
+ target_include_directories(igl_embree PRIVATE ${EMBREE_DIR}/include)
|
|
|
|
+ target_compile_definitions(igl_embree PRIVATE -DENABLE_STATIC_LIB)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -279,8 +275,8 @@ if(LIBIGL_WITH_LIM)
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES "${LIBIGL_LIM_EXTRA_LIBRARIES}")
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES "${LIBIGL_LIM_EXTRA_LIBRARIES}")
|
|
|
|
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("lim")
|
|
|
|
- target_include_directories(igllim PRIVATE ${LIM_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("lim" "")
|
|
|
|
+ target_include_directories(igl_lim PRIVATE ${LIM_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -292,8 +288,8 @@ if(LIBIGL_WITH_MATLAB)
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_MATLAB_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_MATLAB_EXTRA_LIBRARIES})
|
|
|
|
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("matlab")
|
|
|
|
- target_include_directories(iglmatlab PRIVATE ${MATLAB_INCLUDE_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("matlab" "")
|
|
|
|
+ target_include_directories(igl_matlab PRIVATE ${MATLAB_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -304,8 +300,8 @@ if(LIBIGL_WITH_MOSEK)
|
|
list(APPEND LIBIGL_MOSEK_EXTRA_LIBRARIES ${MOSEK_LIBRARIES})
|
|
list(APPEND LIBIGL_MOSEK_EXTRA_LIBRARIES ${MOSEK_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_MOSEK_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_MOSEK_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("mosek")
|
|
|
|
- target_include_directories(iglmosek PRIVATE ${MOSEK_INCLUDE_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("mosek" "")
|
|
|
|
+ target_include_directories(igl_mosek PRIVATE ${MOSEK_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
else()
|
|
else()
|
|
list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_MOSEK")
|
|
list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_MOSEK")
|
|
@@ -313,14 +309,74 @@ endif()
|
|
|
|
|
|
### Compile the opengl parts ###
|
|
### Compile the opengl parts ###
|
|
if(LIBIGL_WITH_OPENGL)
|
|
if(LIBIGL_WITH_OPENGL)
|
|
|
|
+ find_package(OpenGL REQUIRED)
|
|
|
|
+
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("opengl")
|
|
|
|
- CompileIGL_Module("opengl2")
|
|
|
|
|
|
+ CompileIGL_Module("opengl" "")
|
|
|
|
+ CompileIGL_Module("opengl2" "")
|
|
if(NOT APPLE)
|
|
if(NOT APPLE)
|
|
- target_include_directories(iglopengl PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
|
|
- target_include_directories(iglopengl2 PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
|
|
|
|
+ target_include_directories(igl_opengl PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
|
|
+ target_include_directories(igl_opengl2 PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
+ set(LIBIGL_OPENGL_EXTRA_LIBRARIES ${OPENGL_gl_LIBRARY})
|
|
|
|
+ list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_OPENGL_EXTRA_LIBRARIES})
|
|
|
|
+
|
|
|
|
+ if(LIBIGL_WITH_OPENGL_GLFW)
|
|
|
|
+ set(GLFW_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glfw/include")
|
|
|
|
+ if(LIBIGL_USE_STATIC_LIBRARY)
|
|
|
|
+ CompileIGL_Module("opengl/glfw" "")
|
|
|
|
+ set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
|
|
|
|
+ set(GLFW_BUILD_TESTS OFF CACHE BOOL " " FORCE)
|
|
|
|
+ set(GLFW_BUILD_DOCS OFF CACHE BOOL " " FORCE)
|
|
|
|
+ set(GLFW_BUILD_INSTALL OFF CACHE BOOL " " FORCE)
|
|
|
|
+ add_subdirectory("${NANOGUI_DIR}/ext/glfw" "glfw")
|
|
|
|
+ set(LIBIGL_OPENGL_GLFW_EXTRA_LIBRARIES "glfw" ${GLFW_LIBRARIES})
|
|
|
|
+ endif()
|
|
|
|
+ ### Compile the viewer ###
|
|
|
|
+ if(LIBIGL_WITH_VIEWER)
|
|
|
|
+ if(LIBIGL_WITH_NANOGUI)
|
|
|
|
+ list(APPEND LIBIGL_DEFINITIONS "-DIGL_VIEWER_WITH_NANOGUI")
|
|
|
|
+ if (LIBIGL_WITH_PYTHON)
|
|
|
|
+ set(NANOGUI_BUILD_PYTHON ON CACHE BOOL " " FORCE)
|
|
|
|
+ else()
|
|
|
|
+ set(NANOGUI_BUILD_PYTHON OFF CACHE BOOL " " FORCE)
|
|
|
|
+ endif()
|
|
|
|
+ set(NANOGUI_BUILD_EXAMPLE OFF CACHE BOOL " " FORCE)
|
|
|
|
+ set(NANOGUI_BUILD_SHARED OFF CACHE BOOL " " FORCE)
|
|
|
|
+ add_subdirectory("${NANOGUI_DIR}" "nanogui")
|
|
|
|
+ set(VIEWER_INCLUDE_DIRS
|
|
|
|
+ "${NANOGUI_DIR}/include"
|
|
|
|
+ "${NANOGUI_DIR}/ext/nanovg/src")
|
|
|
|
+ set(LIBIGL_VIEWER_EXTRA_LIBRARIES "nanogui" ${NANOGUI_EXTRA_LIBS})
|
|
|
|
+ else()
|
|
|
|
+ set(VIEWER_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glfw/include")
|
|
|
|
+ endif()
|
|
|
|
+ list(APPEND VIEWER_INCLUDE_DIRS ${GLFW_INCLUDE_DIRS})
|
|
|
|
+ list(APPEND LIBIGL_INCLUDE_DIRS ${VIEWER_INCLUDE_DIRS})
|
|
|
|
+ list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_VIEWER_EXTRA_LIBRARIES})
|
|
|
|
+ if(LIBIGL_USE_STATIC_LIBRARY)
|
|
|
|
+ CompileIGL_Module("viewer" "")
|
|
|
|
+ if(LIBIGL_WITH_NANOGUI)
|
|
|
|
+ target_compile_definitions(igl_viewer PRIVATE -DIGL_VIEWER_WITH_NANOGUI)
|
|
|
|
+ endif()
|
|
|
|
+ target_include_directories(igl_viewer PRIVATE ${VIEWER_INCLUDE_DIRS})
|
|
|
|
+ endif()
|
|
|
|
+ endif()
|
|
|
|
+ endif()
|
|
|
|
+
|
|
|
|
+ ### GLEW for linux and windows
|
|
|
|
+ if((UNIX AND NOT APPLE) OR WIN32) ### Compile glew if needed
|
|
|
|
+ set(GLEW_INSTALL OFF CACHE BOOL " " FORCE)
|
|
|
|
+ add_subdirectory("${NANOGUI_DIR}/ext/glew" "glew")
|
|
|
|
+ endif()
|
|
|
|
+ if(NOT APPLE)
|
|
|
|
+ list(APPEND GLFW_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glew/include")
|
|
|
|
+ list(APPEND LIBIGL_OPENGL_GLFW_EXTRA_LIBRARIES "glew")
|
|
|
|
+ endif()
|
|
|
|
+ list(APPEND LIBIGL_INCLUDE_DIRS ${GLFW_INCLUDE_DIRS})
|
|
|
|
+ list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_OPENGL_GLFW_EXTRA_LIBRARIES})
|
|
|
|
+ target_include_directories(igl_opengl_glfw PRIVATE ${GLFW_INCLUDE_DIRS})
|
|
endif()
|
|
endif()
|
|
|
|
|
|
### Compile the png parts ###
|
|
### Compile the png parts ###
|
|
@@ -334,10 +390,10 @@ if(LIBIGL_WITH_PNG)
|
|
list(APPEND LIBIGL_PNG_EXTRA_LIBRARIES "stb_image")
|
|
list(APPEND LIBIGL_PNG_EXTRA_LIBRARIES "stb_image")
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_PNG_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_PNG_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("png")
|
|
|
|
- target_include_directories(iglpng PRIVATE ${STB_IMAGE_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("png" "")
|
|
|
|
+ target_include_directories(igl_png PRIVATE ${STB_IMAGE_DIR})
|
|
if(NOT APPLE)
|
|
if(NOT APPLE)
|
|
- target_include_directories(iglpng PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
|
|
|
|
+ target_include_directories(igl_png PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
@@ -351,8 +407,8 @@ if(LIBIGL_WITH_TETGEN)
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_TETGEN_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_TETGEN_EXTRA_LIBRARIES})
|
|
|
|
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module_Copyleft("tetgen")
|
|
|
|
- target_include_directories(igltetgen PRIVATE ${TETGEN_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("tetgen" "copyleft/")
|
|
|
|
+ target_include_directories(igl_tetgen PRIVATE ${TETGEN_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -365,64 +421,8 @@ if(LIBIGL_WITH_TRIANGLE)
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_TRIANGLE_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_TRIANGLE_EXTRA_LIBRARIES})
|
|
|
|
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("triangle")
|
|
|
|
- target_include_directories(igltriangle PRIVATE ${TRIANGLE_DIR})
|
|
|
|
- endif()
|
|
|
|
-endif()
|
|
|
|
-
|
|
|
|
-### Compile the viewer ###
|
|
|
|
-if(LIBIGL_WITH_VIEWER)
|
|
|
|
- find_package(OpenGL REQUIRED)
|
|
|
|
- set(NANOGUI_DIR "${LIBIGL_EXTERNAL}/nanogui")
|
|
|
|
-
|
|
|
|
- if(LIBIGL_WITH_NANOGUI)
|
|
|
|
- list(APPEND LIBIGL_DEFINITIONS "-DIGL_VIEWER_WITH_NANOGUI")
|
|
|
|
-
|
|
|
|
- if (LIBIGL_WITH_PYTHON)
|
|
|
|
- set(NANOGUI_BUILD_PYTHON ON CACHE BOOL " " FORCE)
|
|
|
|
- else()
|
|
|
|
- set(NANOGUI_BUILD_PYTHON OFF CACHE BOOL " " FORCE)
|
|
|
|
- endif()
|
|
|
|
-
|
|
|
|
- set(NANOGUI_BUILD_EXAMPLE OFF CACHE BOOL " " FORCE)
|
|
|
|
- set(NANOGUI_BUILD_SHARED OFF CACHE BOOL " " FORCE)
|
|
|
|
- add_subdirectory("${NANOGUI_DIR}" "nanogui")
|
|
|
|
-
|
|
|
|
- set(VIEWER_INCLUDE_DIRS
|
|
|
|
- "${NANOGUI_DIR}/include"
|
|
|
|
- "${NANOGUI_DIR}/ext/nanovg/src"
|
|
|
|
- "${NANOGUI_DIR}/ext/glfw/include")
|
|
|
|
- set(LIBIGL_VIEWER_EXTRA_LIBRARIES "nanogui" ${NANOGUI_EXTRA_LIBS})
|
|
|
|
- else()
|
|
|
|
- set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
|
|
|
|
- set(GLFW_BUILD_TESTS OFF CACHE BOOL " " FORCE)
|
|
|
|
- set(GLFW_BUILD_DOCS OFF CACHE BOOL " " FORCE)
|
|
|
|
- set(GLFW_BUILD_INSTALL OFF CACHE BOOL " " FORCE)
|
|
|
|
- add_subdirectory("${NANOGUI_DIR}/ext/glfw" "glfw")
|
|
|
|
-
|
|
|
|
- set(VIEWER_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glfw/include")
|
|
|
|
- set(LIBIGL_VIEWER_EXTRA_LIBRARIES "glfw" ${OPENGL_gl_LIBRARY} ${GLFW_LIBRARIES})
|
|
|
|
- endif()
|
|
|
|
-
|
|
|
|
- ### GLEW for linux and windows
|
|
|
|
- if((UNIX AND NOT APPLE) OR WIN32) ### Compile glew if needed
|
|
|
|
- set(GLEW_INSTALL OFF CACHE BOOL " " FORCE)
|
|
|
|
- add_subdirectory("${NANOGUI_DIR}/ext/glew" "glew")
|
|
|
|
- endif()
|
|
|
|
- if(NOT APPLE)
|
|
|
|
- list(APPEND VIEWER_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glew/include")
|
|
|
|
- list(APPEND LIBIGL_VIEWER_EXTRA_LIBRARIES "glew")
|
|
|
|
- endif()
|
|
|
|
-
|
|
|
|
- list(APPEND LIBIGL_INCLUDE_DIRS ${VIEWER_INCLUDE_DIRS})
|
|
|
|
- list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_VIEWER_EXTRA_LIBRARIES})
|
|
|
|
-
|
|
|
|
- if(LIBIGL_USE_STATIC_LIBRARY)
|
|
|
|
- CompileIGL_Module("viewer")
|
|
|
|
- if(LIBIGL_WITH_NANOGUI)
|
|
|
|
- target_compile_definitions(iglviewer PRIVATE -DIGL_VIEWER_WITH_NANOGUI)
|
|
|
|
- endif()
|
|
|
|
- target_include_directories(iglviewer PRIVATE ${VIEWER_INCLUDE_DIRS})
|
|
|
|
|
|
+ CompileIGL_Module("triangle" "")
|
|
|
|
+ target_include_directories(igl_triangle PRIVATE ${TRIANGLE_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -438,8 +438,8 @@ if(LIBIGL_WITH_XML)
|
|
list(APPEND LIBIGL_XML_EXTRA_LIBRARIES "tinyxml2")
|
|
list(APPEND LIBIGL_XML_EXTRA_LIBRARIES "tinyxml2")
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_XML_EXTRA_LIBRARIES})
|
|
list(APPEND LIBIGL_EXTRA_LIBRARIES ${LIBIGL_XML_EXTRA_LIBRARIES})
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
if(LIBIGL_USE_STATIC_LIBRARY)
|
|
- CompileIGL_Module("xml")
|
|
|
|
- target_include_directories(iglxml PRIVATE ${TINYXML2_DIR})
|
|
|
|
|
|
+ CompileIGL_Module("xml" "")
|
|
|
|
+ target_include_directories(igl_xml PRIVATE ${TINYXML2_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
@@ -466,7 +466,8 @@ if(NOT ${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME})
|
|
set(LIBIGL_MATLAB_EXTRA_LIBRARIES ${LIBIGL_MATLAB_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_MATLAB_EXTRA_LIBRARIES ${LIBIGL_MATLAB_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_MOSEK_EXTRA_LIBRARIES ${LIBIGL_MOSEK_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_MOSEK_EXTRA_LIBRARIES ${LIBIGL_MOSEK_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_NANOGUI_EXTRA_LIBRARIES ${LIBIGL_NANOGUI_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_NANOGUI_EXTRA_LIBRARIES ${LIBIGL_NANOGUI_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
- #set(LIBIGL_OPENGL_EXTRA_LIBRARIES ${LIBIGL_OPENGL_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
|
|
|
|
+ set(LIBIGL_OPENGL_EXTRA_LIBRARIES ${LIBIGL_OPENGL_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
|
|
+ set(LIBIGL_OPENGL_GLFW_EXTRA_LIBRARIES ${LIBIGL_OPENGL_GLFW_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_PNG_EXTRA_LIBRARIES ${LIBIGL_PNG_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_PNG_EXTRA_LIBRARIES ${LIBIGL_PNG_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_TETGEN_EXTRA_LIBRARIES ${LIBIGL_TETGEN_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_TETGEN_EXTRA_LIBRARIES ${LIBIGL_TETGEN_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_TRIANGLE_EXTRA_LIBRARIES ${LIBIGL_TRIANGLE_EXTRA_LIBRARIES} PARENT_SCOPE)
|
|
set(LIBIGL_TRIANGLE_EXTRA_LIBRARIES ${LIBIGL_TRIANGLE_EXTRA_LIBRARIES} PARENT_SCOPE)
|