FindLIBIGL.cmake 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. # - Try to find the LIBIGL library
  2. # Once done this will define
  3. #
  4. # LIBIGL_FOUND - system has LIBIGL
  5. # LIBIGL_INCLUDE_DIR - the LIBIGL include directory
  6. # LIBIGL_SOURCES - the LIBIGL source files
  7. # Mosek is not required but must be found before libigl to ensure correct flags
  8. # are set
  9. find_package(Mosek QUIET)
  10. FIND_PATH(LIBIGL_INCLUDE_DIR igl/readOBJ.h
  11. /usr/include
  12. /usr/local/include
  13. /usr/local/igl/libigl/include
  14. $ENV{LIBIGL}/include
  15. $ENV{LIBIGLROOT}/include
  16. $ENV{LIBIGL_ROOT}/include
  17. $ENV{LIBIGL_DIR}/include
  18. $ENV{LIBIGL_DIR}/inc
  19. ${PROJECT_SOURCE_DIR}/../libigl/include
  20. ${PROJECT_SOURCE_DIR}/../../libigl/include
  21. ${PROJECT_SOURCE_DIR}/../../include
  22. )
  23. if(LIBIGL_INCLUDE_DIR)
  24. set(LIBIGL_FOUND TRUE)
  25. set(LIBIGL_INCLUDE_DIR ${LIBIGL_INCLUDE_DIR} ${LIBIGL_INCLUDE_DIR}/../external/Singular_Value_Decomposition)
  26. #set(LIBIGL_SOURCES
  27. # ${LIBIGL_INCLUDE_DIR}/igl/viewer/Viewer.cpp
  28. #)
  29. endif(LIBIGL_INCLUDE_DIR)
  30. if (NOT MOSEK_FOUND)
  31. add_definitions(-DIGL_NO_MOSEK)
  32. endif (NOT MOSEK_FOUND)
  33. if(LIBIGL_USE_STATIC_LIBRARY)
  34. add_definitions(-DIGL_STATIC_LIBRARY)
  35. set(LIBIGL_LIB_DIRS
  36. /usr/lib
  37. /usr/local/lib
  38. $ENV{LIBIGLROOT}/lib
  39. $ENV{LIBIGL_ROOT}/lib
  40. $ENV{LIBIGL_DIR}/lib
  41. ${PROJECT_SOURCE_DIR}/../libigl/lib
  42. ${PROJECT_SOURCE_DIR}/../../libigl/lib
  43. ${PROJECT_SOURCE_DIR}/../../lib)
  44. FIND_LIBRARY( LIBIGL_LIBRARY NAMES igl PATHS ${LIBIGL_LIB_DIRS})
  45. if(NOT LIBIGL_LIBRARY)
  46. set(LIBIGL_FOUND FALSE)
  47. message(FATAL_ERROR "could NOT find libigl")
  48. endif(NOT LIBIGL_LIBRARY)
  49. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGL_LIBRARY})
  50. FIND_LIBRARY( LIBIGLBBW_LIBRARY NAMES iglbbw PATHS ${LIBIGL_LIB_DIRS})
  51. if(NOT LIBIGLBBW_LIBRARY)
  52. set(LIBIGL_FOUND FALSE)
  53. message(FATAL_ERROR "could NOT find libiglbbw")
  54. endif(NOT LIBIGLBBW_LIBRARY)
  55. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLBBW_LIBRARY})
  56. FIND_LIBRARY( LIBIGLMOSEK_LIBRARY NAMES iglmosek PATHS ${LIBIGL_LIB_DIRS})
  57. if(NOT LIBIGLMOSEK_LIBRARY)
  58. set(LIBIGL_FOUND FALSE)
  59. message(FATAL_ERROR "could NOT find libiglmosek")
  60. endif(NOT LIBIGLMOSEK_LIBRARY)
  61. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLMOSEK_LIBRARY})
  62. if(MOSEK_FOUND)
  63. set(LIBIGL_INCLUDE_DIR ${LIBIGL_INCLUDE_DIR} ${MOSEK_INCLUDE_DIR})
  64. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${MOSEK_LIBRARIES})
  65. else(MOSEK_FOUND)
  66. set(LIBIGL_FOUND FALSE)
  67. message(FATAL_ERROR "could NOT find mosek")
  68. endif(MOSEK_FOUND)
  69. FIND_LIBRARY( LIBIGLCGAL_LIBRARY NAMES iglcgal PATHS ${LIBIGL_LIB_DIRS})
  70. if(NOT LIBIGLCGAL_LIBRARY)
  71. set(LIBIGL_FOUND FALSE)
  72. message(FATAL_ERROR "could NOT find libiglcgal")
  73. endif(NOT LIBIGLCGAL_LIBRARY)
  74. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLCGAL_LIBRARY})
  75. FIND_LIBRARY( LIBIGLBOOLEAN_LIBRARY NAMES iglboolean PATHS ${LIBIGL_LIB_DIRS})
  76. if(NOT LIBIGLBOOLEAN_LIBRARY)
  77. set(LIBIGL_FOUND FALSE)
  78. message(FATAL_ERROR "could NOT find libiglboolean ")
  79. endif(NOT LIBIGLBOOLEAN_LIBRARY)
  80. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLBOOLEAN_LIBRARY})
  81. FIND_LIBRARY( LIBIGLEMBREE_LIBRARY NAMES iglembree PATHS ${LIBIGL_LIB_DIRS})
  82. if(NOT LIBIGLEMBREE_LIBRARY)
  83. set(LIBIGL_FOUND FALSE)
  84. message(FATAL_ERROR "could NOT find libiglembree")
  85. endif(NOT LIBIGLEMBREE_LIBRARY)
  86. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLEMBREE_LIBRARY})
  87. find_package(Embree REQUIRED)
  88. FIND_LIBRARY( LIBIGLLIM_LIBRARY NAMES igllim PATHS ${LIBIGL_LIB_DIRS})
  89. if(NOT LIBIGLLIM_LIBRARY)
  90. set(LIBIGL_FOUND FALSE)
  91. message(FATAL_ERROR "could NOT find libigllim")
  92. endif(NOT LIBIGLLIM_LIBRARY)
  93. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLLIM_LIBRARY})
  94. FIND_LIBRARY( LIBIGLMATLAB_LIBRARY NAMES iglmatlab PATHS ${LIBIGL_LIB_DIRS})
  95. if(NOT LIBIGLMATLAB_LIBRARY)
  96. set(LIBIGL_FOUND FALSE)
  97. message(FATAL_ERROR "could NOT find libiglmatlab")
  98. endif(NOT LIBIGLMATLAB_LIBRARY)
  99. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLMATLAB_LIBRARY})
  100. find_package(Matlab REQUIRED)
  101. if(MATLAB_FOUND)
  102. set(LIBIGL_INCLUDE_DIR ${LIBIGL_INCLUDE_DIR} ${MATLAB_INCLUDE_DIR})
  103. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${MATLAB_LIBRARIES})
  104. else(MATLAB_FOUND)
  105. set(LIBIGL_FOUND FALSE)
  106. message(FATAL_ERROR "could NOT find matlab")
  107. endif(MATLAB_FOUND)
  108. FIND_LIBRARY( LIBIGLSVD3X3_LIBRARY NAMES iglsvd3x3 PATHS ${LIBIGL_LIB_DIRS})
  109. if(NOT LIBIGLSVD3X3_LIBRARY)
  110. set(LIBIGL_FOUND FALSE)
  111. message(FATAL_ERROR "could NOT find libiglsvd3x3")
  112. endif(NOT LIBIGLSVD3X3_LIBRARY)
  113. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLSVD3X3_LIBRARY})
  114. FIND_LIBRARY( LIBIGLTETGEN_LIBRARY NAMES igltetgen PATHS ${LIBIGL_LIB_DIRS})
  115. if(NOT LIBIGLTETGEN_LIBRARY)
  116. set(LIBIGL_FOUND FALSE)
  117. message(FATAL_ERROR "could NOT find libigltetgen")
  118. endif(NOT LIBIGLTETGEN_LIBRARY)
  119. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLTETGEN_LIBRARY})
  120. FIND_LIBRARY( LIBIGLTRIANGLE_LIBRARY NAMES igltriangle PATHS ${LIBIGL_LIB_DIRS})
  121. if(NOT LIBIGLTRIANGLE_LIBRARY)
  122. set(LIBIGL_FOUND FALSE)
  123. message(FATAL_ERROR "could NOT find libigltriangle")
  124. endif(NOT LIBIGLTRIANGLE_LIBRARY)
  125. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLTRIANGLE_LIBRARY})
  126. FIND_LIBRARY( LIBIGLVIEWER_LIBRARY NAMES iglviewer PATHS ${LIBIGL_LIB_DIRS})
  127. if(NOT LIBIGLVIEWER_LIBRARY)
  128. set(LIBIGL_FOUND FALSE)
  129. message(FATAL_ERROR "could NOT find libiglviewer")
  130. endif(NOT LIBIGLVIEWER_LIBRARY)
  131. set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLVIEWER_LIBRARY})
  132. find_package(OpenMP)
  133. if (OPENMP_FOUND)
  134. set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  135. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  136. else(OPENMP_FOUND)
  137. set(LIBIGL_FOUND false)
  138. endif(OPENMP_FOUND)
  139. endif(LIBIGL_USE_STATIC_LIBRARY)
  140. if(LIBIGL_FOUND)
  141. if(NOT LIBIGL_FIND_QUIETLY)
  142. message(STATUS "Found LIBIGL: ${LIBIGL_INCLUDE_DIR}")
  143. endif(NOT LIBIGL_FIND_QUIETLY)
  144. else(LIBIGL_FOUND)
  145. if(LIBIGL_FIND_REQUIRED)
  146. message(FATAL_ERROR "could NOT find LIBIGL")
  147. endif(LIBIGL_FIND_REQUIRED)
  148. endif(LIBIGL_FOUND)
  149. MARK_AS_ADVANCED(LIBIGL_INCLUDE_DIR LIBIGL_LIBRARIES IGL_VIEWER_SOURCES)