CMakeLists.txt 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. cmake_minimum_required(VERSION 2.8.12)
  2. project(libigl)
  3. ### Available options ###
  4. option(LIBIGL_USE_STATIC_LIBRARY "Use libIGL as static library" OFF)
  5. option(LIBIGL_WITH_ANTTWEAKBAR "Use AntTweakBar" OFF)
  6. option(LIBIGL_WITH_BBW "Use BBW" OFF)
  7. option(LIBIGL_WITH_BOOLEAN "Use Cork boolean" OFF)
  8. option(LIBIGL_WITH_CGAL "Use CGAL" OFF)
  9. option(LIBIGL_WITH_COMISO "Use CoMiso" OFF)
  10. option(LIBIGL_WITH_EMBREE "Use Embree" OFF)
  11. option(LIBIGL_WITH_LIM "Use LIM" OFF)
  12. option(LIBIGL_WITH_MATLAB "Use Matlab" OFF)
  13. option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF)
  14. option(LIBIGL_WITH_NANOGUI "Use Nanogui menu" OFF)
  15. option(LIBIGL_WITH_OPENGL_AND_PNG "Use OpenGL" OFF)
  16. option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF)
  17. option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF)
  18. option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" OFF)
  19. option(LIBIGL_WITH_XML "Use XML" OFF)
  20. ### Compilation configuration ###
  21. if(MSVC)
  22. ### Enable parallel compilation for Visual Studio
  23. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /bigobj")
  24. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w") # disable all warnings (not ideal but...)
  25. else()
  26. #### Libigl requires a modern C++ compiler that supports c++11
  27. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  28. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") # disable all warnings (not ideal but...)
  29. endif()
  30. set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
  31. ### OpenMP ### (OpenMP is disable for now)
  32. #find_package(OpenMP)
  33. #if(OPENMP_FOUND AND NOT WIN32)
  34. # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  35. # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  36. # list(APPEND LIBIGL_DEFINITIONS "${OpenMP_CXX_FLAGS}")
  37. #endif()
  38. ### Compiling libraries based on chosen options ###
  39. set(LIBIGL_INCLUDE_DIRS "")
  40. set(LIBIGL_LIBRARIES "")
  41. set(LIBIGL_EXTRA_LIBRARIES "")
  42. set(LIBIGL_DEFINITIONS "")
  43. if(LIBIGL_USE_STATIC_LIBRARY)
  44. list(APPEND LIBIGL_DEFINITIONS "-DIGL_STATIC_LIBRARY")
  45. endif()
  46. ### macro definition ###
  47. set(LIBIGL_ROOT "${PROJECT_SOURCE_DIR}/../..")
  48. set(LIBIGL_SOURCE_DIR "${LIBIGL_ROOT}/include")
  49. set(LIBIGL_EXTERNAL "${LIBIGL_ROOT}/external")
  50. ### Eigen ###
  51. set(EIGEN_INCLUDE_DIR "${LIBIGL_EXTERNAL}/nanogui/ext/eigen")
  52. list(APPEND LIBIGL_INCLUDE_DIRS "${EIGEN_INCLUDE_DIR}")
  53. macro(CompileIGL_Module module)
  54. file(GLOB SOURCES_IGL_${module}
  55. "${LIBIGL_SOURCE_DIR}/igl/${module}/*.cpp"
  56. )
  57. add_library(igl${module} STATIC ${SOURCES_IGL_${module}})
  58. target_include_directories(igl${module} PRIVATE ${EIGEN_INCLUDE_DIR})
  59. target_include_directories(igl${module} PRIVATE ${LIBIGL_SOURCE_DIR})
  60. target_compile_definitions(igl${module} PRIVATE -DIGL_STATIC_LIBRARY)
  61. list(APPEND LIBIGL_LIBRARIES "igl${module}")
  62. endmacro()
  63. macro(CompileIGL_Module_Copyleft module)
  64. file(GLOB SOURCES_IGL_${module}
  65. "${LIBIGL_SOURCE_DIR}/igl/copyleft/${module}/*.cpp"
  66. )
  67. add_library(igl${module} STATIC ${SOURCES_IGL_${module}})
  68. target_include_directories(igl${module} PRIVATE ${EIGEN_INCLUDE_DIR})
  69. target_include_directories(igl${module} PRIVATE ${LIBIGL_SOURCE_DIR})
  70. target_compile_definitions(igl${module} PRIVATE -DIGL_STATIC_LIBRARY)
  71. list(APPEND LIBIGL_LIBRARIES "igl${module}")
  72. endmacro()
  73. ### IGL Common ###
  74. list(APPEND LIBIGL_INCLUDE_DIRS "${LIBIGL_SOURCE_DIR}")
  75. if(LIBIGL_USE_STATIC_LIBRARY)
  76. file(GLOB SOURCES_IGL
  77. "${LIBIGL_SOURCE_DIR}/igl/*.cpp"
  78. "${LIBIGL_SOURCE_DIR}/igl/copyleft/*.cpp")
  79. add_library(igl STATIC ${SOURCES_IGL})
  80. target_include_directories(igl PRIVATE ${EIGEN_INCLUDE_DIR})
  81. target_include_directories(igl PRIVATE ${LIBIGL_SOURCE_DIR})
  82. target_compile_definitions(igl PRIVATE -DIGL_STATIC_LIBRARY)
  83. list(APPEND LIBIGL_LIBRARIES "igl")
  84. endif()
  85. ### Compile the AntTweakBar part ###
  86. if(LIBIGL_WITH_ANTTWEAKBAR)
  87. if(LIBIGL_USE_STATIC_LIBRARY)
  88. CompileIGL_Module("anttweakbar")
  89. endif()
  90. endif()
  91. ### Compile the BBW part ###
  92. if(LIBIGL_WITH_BBW)
  93. if(LIBIGL_USE_STATIC_LIBRARY)
  94. CompileIGL_Module("bbw")
  95. if(LIBIGL_WITH_MOSEK)
  96. target_include_directories(iglbbw PRIVATE ${MOSEK_INCLUDE_DIR})
  97. else()
  98. target_compile_definitions(iglbbw PRIVATE -DIGL_NO_MOSEK)
  99. endif()
  100. endif()
  101. endif()
  102. ### Compile the embree part ###
  103. if(LIBIGL_WITH_EMBREE)
  104. set(EMBREE_DIR "${LIBIGL_EXTERNAL}/embree")
  105. set(ENABLE_ISPC_SUPPORT OFF CACHE BOOL " " FORCE)
  106. set(RTCORE_TASKING_SYSTEM "INTERNAL" CACHE BOOL " " FORCE)
  107. set(ENABLE_TUTORIALS OFF CACHE BOOL " " FORCE)
  108. set(ENABLE_STATIC_LIB ON CACHE BOOL " " FORCE)
  109. set(ENABLE_INSTALLER OFF CACHE BOOL " " FORCE)
  110. if(MSVC)
  111. set(USE_STATIC_RUNTIME OFF CACHE BOOL " " FORCE)
  112. endif()
  113. add_subdirectory("${EMBREE_DIR}" "embree")
  114. list(APPEND LIBIGL_INCLUDE_DIRS "${EMBREE_DIR}/include")
  115. list(APPEND LIBIGL_EXTRA_LIBRARIES "embree")
  116. list(APPEND LIBIGL_DEFINITIONS "-DENABLE_STATIC_LIB")
  117. if(LIBIGL_USE_STATIC_LIBRARY)
  118. CompileIGL_Module("embree")
  119. target_include_directories(iglembree PRIVATE ${EMBREE_DIR}/include)
  120. target_compile_definitions(iglembree PRIVATE -DENABLE_STATIC_LIB)
  121. endif()
  122. endif()
  123. ### Compile the lim part ###
  124. if(LIBIGL_WITH_LIM)
  125. set(LIM_DIR "${LIBIGL_EXTERNAL}/lim")
  126. add_subdirectory("${LIM_DIR}" "lim")
  127. list(APPEND LIBIGL_INCLUDE_DIRS ${LIM_DIR})
  128. list(APPEND LIBIGL_LIBRARIES "lim") # it depends on ligigl, so placing it here solve linking problems
  129. if(LIBIGL_USE_STATIC_LIBRARY)
  130. CompileIGL_Module("lim")
  131. target_include_directories(igllim PRIVATE ${LIM_DIR})
  132. endif()
  133. endif()
  134. ### Compile the matlab part ###
  135. if(LIBIGL_WITH_MATLAB)
  136. find_package(MATLAB REQUIRED)
  137. list(APPEND LIBIGL_INCLUDE_DIRS ${MATLAB_INCLUDE_DIR})
  138. list(APPEND LIBIGL_EXTRA_LIBRARIES ${MATLAB_LIBRARIES})
  139. if(LIBIGL_USE_STATIC_LIBRARY)
  140. CompileIGL_Module("matlab")
  141. target_include_directories(iglmatlab PRIVATE ${MATLAB_INCLUDE_DIR})
  142. endif()
  143. endif()
  144. ### Compile the mosek part ###
  145. if(LIBIGL_WITH_MOSEK)
  146. find_package(MOSEK REQUIRED)
  147. list(APPEND LIBIGL_INCLUDE_DIRS ${MOSEK_INCLUDE_DIR})
  148. list(APPEND LIBIGL_EXTRA_LIBRARIES ${MOSEK_LIBRARIES})
  149. if(LIBIGL_USE_STATIC_LIBRARY)
  150. CompileIGL_Module("mosek")
  151. target_include_directories(iglmosek PRIVATE ${MOSEK_INCLUDE_DIR})
  152. endif()
  153. else()
  154. list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_MOSEK")
  155. endif()
  156. ### Compile the tetgen part ###
  157. if(LIBIGL_WITH_TETGEN)
  158. set(TETGEN_DIR "${LIBIGL_EXTERNAL}/tetgen")
  159. add_subdirectory("${TETGEN_DIR}" "tetgen")
  160. list(APPEND LIBIGL_INCLUDE_DIRS ${TETGEN_DIR})
  161. list(APPEND LIBIGL_EXTRA_LIBRARIES "tetgen")
  162. if(LIBIGL_USE_STATIC_LIBRARY)
  163. CompileIGL_Module_Copyleft("tetgen")
  164. target_include_directories(igltetgen PRIVATE ${TETGEN_DIR})
  165. endif()
  166. endif()
  167. ### Compile the triangle part ###
  168. if(LIBIGL_WITH_TRIANGLE)
  169. set(TRIANGLE_DIR "${LIBIGL_EXTERNAL}/triangle")
  170. add_subdirectory("${TRIANGLE_DIR}" "triangle")
  171. list(APPEND LIBIGL_INCLUDE_DIRS ${TRIANGLE_DIR})
  172. list(APPEND LIBIGL_EXTRA_LIBRARIES "triangle")
  173. if(LIBIGL_USE_STATIC_LIBRARY)
  174. CompileIGL_Module("triangle")
  175. target_include_directories(igltriangle PRIVATE ${TRIANGLE_DIR})
  176. endif()
  177. endif()
  178. ### Compile the viewer ###
  179. if(LIBIGL_WITH_VIEWER)
  180. set(NANOGUI_DIR "${LIBIGL_EXTERNAL}/nanogui")
  181. if(LIBIGL_WITH_NANOGUI)
  182. list(APPEND LIBIGL_DEFINITIONS "-DIGL_VIEWER_WITH_NANOGUI")
  183. option(NANOGUI_BUILD_PYTHON OFF)
  184. option(NANOGUI_BUILD_EXAMPLE OFF)
  185. option(NANOGUI_BUILD_SHARED OFF)
  186. add_subdirectory("${NANOGUI_DIR}" "nanogui")
  187. set(VIEWER_INCLUDE_DIRS
  188. "${NANOGUI_DIR}/include"
  189. "${NANOGUI_DIR}/ext/nanovg/src"
  190. "${NANOGUI_DIR}/ext/glfw/include")
  191. set(VIEWER_LIBRARIES "nanogui" ${NANOGUI_EXTRA_LIBS})
  192. else()
  193. set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL " " FORCE)
  194. set(GLFW_BUILD_TESTS OFF CACHE BOOL " " FORCE)
  195. set(GLFW_BUILD_DOCS OFF CACHE BOOL " " FORCE)
  196. set(GLFW_BUILD_INSTALL OFF CACHE BOOL " " FORCE)
  197. add_subdirectory("${NANOGUI_DIR}/ext/glfw" "glfw")
  198. set(VIEWER_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glfw/include")
  199. set(VIEWER_LIBRARIES "glfw" ${GLFW_LIBRARIES})
  200. endif()
  201. ### GLEW for linux and windows
  202. if((UNIX AND NOT APPLE) OR (WIN32 AND NOT LIBIGL_WITH_NANOGUI)) ### Compile glew if needed
  203. set(GLEW_INSTALL OFF CACHE BOOL " " FORCE)
  204. add_subdirectory("${NANOGUI_DIR}/ext/glew" "glew")
  205. endif()
  206. if(NOT APPLE)
  207. list(APPEND VIEWER_INCLUDE_DIRS "${NANOGUI_DIR}/ext/glew/include")
  208. list(APPEND VIEWER_LIBRARIES "glew")
  209. endif()
  210. list(APPEND LIBIGL_INCLUDE_DIRS ${VIEWER_INCLUDE_DIRS})
  211. list(APPEND LIBIGL_EXTRA_LIBRARIES ${VIEWER_LIBRARIES})
  212. if(LIBIGL_USE_STATIC_LIBRARY)
  213. CompileIGL_Module("viewer")
  214. if(LIBIGL_WITH_NANOGUI)
  215. target_compile_definitions(iglviewer PRIVATE -DIGL_VIEWER_WITH_NANOGUI)
  216. endif()
  217. target_include_directories(iglviewer PRIVATE ${VIEWER_INCLUDE_DIRS})
  218. endif()
  219. endif()
  220. ### Compile the opengl and png parts ###
  221. if(LIBIGL_WITH_OPENGL_AND_PNG)
  222. set(STB_IMAGE_DIR "${LIBIGL_EXTERNAL}/stb_image")
  223. add_subdirectory("${STB_IMAGE_DIR}" "stb_image")
  224. list(APPEND LIBIGL_INCLUDE_DIRS ${STB_IMAGE_DIR})
  225. list(APPEND LIBIGL_EXTRA_LIBRARIES "stb_image")
  226. if(LIBIGL_USE_STATIC_LIBRARY)
  227. CompileIGL_Module("opengl")
  228. CompileIGL_Module("opengl2")
  229. CompileIGL_Module("png")
  230. target_include_directories(iglpng PRIVATE ${STB_IMAGE_DIR})
  231. if(NOT APPLE)
  232. target_include_directories(iglopengl PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
  233. target_include_directories(iglopengl2 PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
  234. target_include_directories(iglpng PRIVATE "${LIBIGL_EXTERNAL}/nanogui/ext/glew/include")
  235. endif()
  236. endif()
  237. endif()
  238. #Compile CoMISo
  239. # NOTE: this cmakefile works only with the
  240. # comiso available here: https://github.com/libigl/CoMISo
  241. if(LIBIGL_WITH_COMISO)
  242. set(COMISO_DIR "${LIBIGL_EXTERNAL}/CoMISo")
  243. set(COMISO_INCLUDE_DIRS
  244. "${COMISO_DIR}/ext/gmm-4.2/include"
  245. "${COMISO_DIR}/../")
  246. list(APPEND LIBIGL_INCLUDE_DIRS ${COMISO_INCLUDE_DIRS})
  247. #add_definitions(-DINCLUDE_TEMPLATES) (what need this?)
  248. list(APPEND LIBIGL_DEFINITIONS "-DINCLUDE_TEMPLATES")
  249. if(APPLE)
  250. find_library(accelerate_library Accelerate)
  251. list(APPEND LIBIGL_EXTRA_LIBRARIES "CoMISo" ${accelerate_library})
  252. elseif(UNIX)
  253. find_package(BLAS REQUIRED)
  254. list(APPEND LIBIGL_EXTRA_LIBRARIES "CoMISo" ${BLAS_LIBRARIES})
  255. endif(APPLE)
  256. if(MSVC)
  257. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_SCL_SECURE_NO_DEPRECATE")
  258. #link_directories("${COMISO_ROOT}/CoMISo/ext/OpenBLAS-v0.2.14-Win64-int64/lib/")
  259. list(APPEND LIBIGL_EXTRA_LIBRARIES "CoMISo" "${COMISO_DIR}/ext/OpenBLAS-v0.2.14-Win64-int64/lib/libopenblas.dll.a.lib")
  260. endif()
  261. add_subdirectory("${COMISO_DIR}" "CoMISo")
  262. if(MSVC)
  263. # Copy the dll
  264. add_custom_target(Copy-CoMISo-DLL # Adds a post-build event to MyTest
  265. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  266. "${COMISO_DIR}/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libopenblas.dll"
  267. "${CMAKE_CURRENT_BINARY_DIR}/libopenblas.dll"
  268. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  269. "${COMISO_DIR}/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libgcc_s_seh-1.dll"
  270. "${CMAKE_CURRENT_BINARY_DIR}/libgcc_s_seh-1.dll"
  271. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  272. "${COMISO_DIR}/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libgfortran-3.dll"
  273. "${CMAKE_CURRENT_BINARY_DIR}/libgfortran-3.dll"
  274. COMMAND ${CMAKE_COMMAND} -E copy_if_different
  275. "${COMISO_DIR}/ext/OpenBLAS-v0.2.14-Win64-int64/bin/libquadmath-0.dll"
  276. "${CMAKE_CURRENT_BINARY_DIR}/libquadmath-0.dll")
  277. endif()
  278. if(LIBIGL_USE_STATIC_LIBRARY)
  279. CompileIGL_Module_Copyleft("comiso")
  280. target_include_directories(iglcomiso PRIVATE ${COMISO_INCLUDE_DIRS})
  281. target_compile_definitions(iglcomiso PRIVATE -DINCLUDE_TEMPLATES)
  282. endif()
  283. endif()
  284. ### Compile the xml part ###
  285. if(LIBIGL_WITH_XML)
  286. set(TINYXML2_DIR "${LIBIGL_EXTERNAL}/tinyxml2")
  287. add_library(tinyxml2 STATIC ${TINYXML2_DIR}/tinyxml2.cpp ${TINYXML2_DIR}/tinyxml2.h)
  288. set_target_properties(tinyxml2 PROPERTIES
  289. COMPILE_DEFINITIONS "TINYXML2_EXPORT"
  290. VERSION "3.0.0"
  291. SOVERSION "3")
  292. list(APPEND LIBIGL_INCLUDE_DIRS ${TINYXML2_DIR})
  293. list(APPEND LIBIGL_EXTRA_LIBRARIES "tinyxml2")
  294. if(LIBIGL_USE_STATIC_LIBRARY)
  295. CompileIGL_Module("xml")
  296. target_include_directories(iglxml PRIVATE ${TINYXML2_DIR})
  297. endif()
  298. endif()
  299. ### Compile the boolean and cgal parts ###
  300. if(LIBIGL_WITH_CGAL) # to be cleaned
  301. find_package(CGAL REQUIRED)
  302. # set(Boost_USE_MULTITHREADED ON)
  303. # set(Boost_USE_STATIC_LIBS ON)
  304. #
  305. # find_package(BOOST REQUIRED)
  306. include(${CGAL_USE_FILE})
  307. list(APPEND LIBIGL_INCLUDE_DIRS ${CGAL_3RD_PARTY_INCLUDE_DIRS})
  308. list(APPEND LIBIGL_INCLUDE_DIRS ${CGAL_INCLUDE_DIRS})
  309. list(APPEND LIBIGL_EXTRA_LIBRARIES ${CGAL_3RD_PARTY_LIBRARIES})
  310. list(APPEND LIBIGL_EXTRA_LIBRARIES ${CGAL_LIBRARIES})
  311. if(LIBIGL_USE_STATIC_LIBRARY)
  312. CompileIGL_Module_Copyleft("cgal")
  313. target_include_directories(iglcgal PRIVATE
  314. ${CGAL_3RD_PARTY_INCLUDE_DIRS}
  315. ${CGAL_INCLUDE_DIRS})
  316. endif()
  317. if(LIBIGL_WITH_BOOLEAN)
  318. find_package(CORK QUIET)
  319. if(CORK_FOUND)
  320. list(APPEND LIBIGL_INCLUDE_DIRS ${CORK_INCLUDE_DIR})
  321. list(APPEND LIBIGL_EXTRA_LIBRARIES ${CORK_LIBRARIES})
  322. if(LIBIGL_USE_STATIC_LIBRARY)
  323. CompileIGL_Module_Copyleft("boolean")
  324. target_include_directories(iglboolean PRIVATE
  325. ${CGAL_3RD_PARTY_INCLUDE_DIRS}
  326. ${CGAL_INCLUDE_DIRS}
  327. ${CORK_INCLUDE_DIR})
  328. endif()
  329. else()
  330. list(APPEND LIBIGL_DEFINITIONS "-DIGL_NO_CORK")
  331. if(LIBIGL_USE_STATIC_LIBRARY)
  332. CompileIGL_Module_Copyleft("boolean")
  333. target_include_directories(iglboolean PRIVATE
  334. ${CGAL_3RD_PARTY_INCLUDE_DIRS}
  335. ${CGAL_INCLUDE_DIRS})
  336. target_compile_definitions(iglboolean PRIVATE -DIGL_NO_CORK)
  337. endif()
  338. endif()
  339. endif()
  340. endif()
  341. # Function to print list nicely
  342. function(print_list title list)
  343. message("-- ${title}:")
  344. foreach(elt ${list})
  345. message("\t ${elt}")
  346. endforeach()
  347. endfunction()
  348. # Pass the list of compiled libraries to the parent if there is one
  349. if(NOT ${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME})
  350. list(REVERSE LIBIGL_LIBRARIES)
  351. set(LIBIGL_INCLUDE_DIRS ${LIBIGL_INCLUDE_DIRS} PARENT_SCOPE)
  352. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} PARENT_SCOPE)
  353. set(LIBIGL_EXTRA_LIBRARIES ${LIBIGL_EXTRA_LIBRARIES} PARENT_SCOPE)
  354. set(LIBIGL_DEFINITIONS ${LIBIGL_DEFINITIONS} PARENT_SCOPE)
  355. ### ligIGL information ###
  356. print_list("libIGL includes" "${LIBIGL_INCLUDE_DIRS}")
  357. print_list("libIGL libraries" "${LIBIGL_LIBRARIES}")
  358. print_list("libIGL extra libraries" "${LIBIGL_EXTRA_LIBRARIES}")
  359. print_list("libIGL definitions" "${LIBIGL_DEFINITIONS}")
  360. endif()