File size: 7,485 Bytes
3bbb319 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# Copied from:
# https://github.com/libigl/libigl-examples/blob/master/cmake/FindLIBIGL.cmake
# - Try to find the LIBIGL library
# Once done this will define
#
# LIBIGL_FOUND - system has LIBIGL
# LIBIGL_INCLUDE_DIR - **the** LIBIGL include directory
# LIBIGL_INCLUDE_DIRS - LIBIGL include directories
# LIBIGL_SOURCES - the LIBIGL source files
if(NOT LIBIGL_FOUND)
FIND_PATH(LIBIGL_INCLUDE_DIR igl/readOBJ.h
${PROJECT_SOURCE_DIR}/../../include
${PROJECT_SOURCE_DIR}/../include
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/../libigl/include
${PROJECT_SOURCE_DIR}/../../libigl/include
$ENV{LIBIGL}/include
$ENV{LIBIGLROOT}/include
$ENV{LIBIGL_ROOT}/include
$ENV{LIBIGL_DIR}/include
$ENV{LIBIGL_DIR}/inc
/usr/include
/usr/local/include
/usr/local/igl/libigl/include
)
if(LIBIGL_INCLUDE_DIR)
set(LIBIGL_FOUND TRUE)
set(LIBIGL_INCLUDE_DIRS ${LIBIGL_INCLUDE_DIR} ${LIBIGL_INCLUDE_DIR}/../external/Singular_Value_Decomposition)
#set(LIBIGL_SOURCES
# ${LIBIGL_INCLUDE_DIR}/igl/viewer/Viewer.cpp
#)
endif(LIBIGL_INCLUDE_DIR)
if(LIBIGL_USE_STATIC_LIBRARY)
add_definitions(-DIGL_STATIC_LIBRARY)
set(LIBIGL_LIB_DIRS
${CMAKE_BINARY_DIR}/
${PROJECT_SOURCE_DIR}/../../lib
${PROJECT_SOURCE_DIR}/../lib
${PROJECT_SOURCE_DIR}/lib
${PROJECT_SOURCE_DIR}/../../libigl/lib
${PROJECT_SOURCE_DIR}/../libigl/lib
$ENV{LIBIGL}/lib
$ENV{LIBIGLROOT}/lib
$ENV{LIBIGL_ROOT}/lib
$ENV{LIBIGL_DIR}/lib
/usr/lib
/usr/local/lib)
FIND_LIBRARY( LIBIGL_LIBRARY NAMES igl PATHS ${LIBIGL_LIB_DIRS})
# try to find pre-requisites
find_package(CORK QUIET)
find_package(CGAL QUIET)
find_package(EMBREE QUIET)
find_package(LIBCOMISO QUIET)
find_package(MATLAB QUIET)
find_package(MOSEK QUIET)
find_package(TETGEN QUIET)
find_package(TINYXML2 QUIET)
find_package(TRIANGLE QUIET)
# Main library must be found
if(NOT LIBIGL_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libigl")
endif(NOT LIBIGL_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGL_LIBRARY})
FIND_LIBRARY( LIBIGLANTTWEAKBAR_LIBRARY NAMES iglanttweakbar PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLANTTWEAKBAR_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglanttweakbar")
endif(NOT LIBIGLANTTWEAKBAR_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLANTTWEAKBAR_LIBRARY})
# libiglbbw will work with/without mosek
FIND_LIBRARY( LIBIGLBBW_LIBRARY NAMES iglbbw PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLBBW_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglbbw")
endif(NOT LIBIGLBBW_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLBBW_LIBRARY})
if(LIBCOMISO_FOUND)
FIND_LIBRARY(LIBIGLCOMISO_LIBRARY NAMES iglcomiso PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLCOMISO_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglcomiso")
endif(NOT LIBIGLCOMISO_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLCOMISO_LIBRARY})
endif(LIBCOMISO_FOUND)
if(CGAL_FOUND)
FIND_LIBRARY( LIBIGLCGAL_LIBRARY NAMES iglcgal PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLCGAL_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglcgal")
endif(NOT LIBIGLCGAL_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLCGAL_LIBRARY})
endif(CGAL_FOUND)
if(EMBREE_FOUND)
FIND_LIBRARY( LIBIGLEMBREE_LIBRARY NAMES iglembree PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLEMBREE_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglembree")
endif(NOT LIBIGLEMBREE_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLEMBREE_LIBRARY})
endif(EMBREE_FOUND)
if(LIM_FOUND)
FIND_LIBRARY( LIBIGLLIM_LIBRARY NAMES igllim PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLLIM_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libigllim")
endif(NOT LIBIGLLIM_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLLIM_LIBRARY})
endif(LIM_FOUND)
if(MATLAB_FOUND)
FIND_LIBRARY( LIBIGLMATLAB_LIBRARY NAMES iglmatlab PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLMATLAB_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglmatlab")
endif(NOT LIBIGLMATLAB_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLMATLAB_LIBRARY})
endif(MATLAB_FOUND)
# mosek support should be determined before trying to find bbw
if(MOSEK_FOUND)
FIND_LIBRARY( LIBIGLMOSEK_LIBRARY NAMES iglmosek PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLMOSEK_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglmosek")
endif(NOT LIBIGLMOSEK_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLMOSEK_LIBRARY})
endif(MOSEK_FOUND)
FIND_LIBRARY( LIBIGLOPENGL_LIBRARY NAMES iglopengl PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLOPENGL_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglopengl")
endif(NOT LIBIGLOPENGL_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLOPENGL_LIBRARY})
FIND_LIBRARY( LIBIGLOPENGL2_LIBRARY NAMES iglopengl2 PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLOPENGL2_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglopengl2")
endif(NOT LIBIGLOPENGL2_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLOPENGL2_LIBRARY})
if(TETGEN_FOUND)
FIND_LIBRARY( LIBIGLTETGEN_LIBRARY NAMES igltetgen PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLTETGEN_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libigltetgen")
endif(NOT LIBIGLTETGEN_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLTETGEN_LIBRARY})
endif(TETGEN_FOUND)
if(TINYXML2_FOUND)
FIND_LIBRARY( LIBIGLXML_LIBRARY NAMES iglxml PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLXML_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglxml")
endif(NOT LIBIGLXML_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLXML_LIBRARY})
endif(TINYXML2_FOUND)
if(TRIANGLE_FOUND)
FIND_LIBRARY( LIBIGLTRIANGLE_LIBRARY NAMES igltriangle PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLTRIANGLE_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libigltriangle")
endif(NOT LIBIGLTRIANGLE_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLTRIANGLE_LIBRARY})
endif(TRIANGLE_FOUND)
# libiglviewer is required
FIND_LIBRARY( LIBIGLVIEWER_LIBRARY NAMES iglviewer PATHS ${LIBIGL_LIB_DIRS})
if(NOT LIBIGLVIEWER_LIBRARY)
set(LIBIGL_FOUND FALSE)
message(FATAL_ERROR "could NOT find libiglviewer")
endif(NOT LIBIGLVIEWER_LIBRARY)
set(LIBIGL_LIBRARIES ${LIBIGL_LIBRARIES} ${LIBIGLVIEWER_LIBRARY})
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif(OPENMP_FOUND)
endif(LIBIGL_USE_STATIC_LIBRARY)
if(LIBIGL_FOUND)
if(NOT LIBIGL_FIND_QUIETLY)
message(STATUS "Found LIBIGL: ${LIBIGL_INCLUDE_DIR}")
endif(NOT LIBIGL_FIND_QUIETLY)
else(LIBIGL_FOUND)
if(LIBIGL_FIND_REQUIRED)
message(FATAL_ERROR "could NOT find LIBIGL")
endif(LIBIGL_FIND_REQUIRED)
endif(LIBIGL_FOUND)
MARK_AS_ADVANCED(LIBIGL_INCLUDE_DIRS LIBIGL_INCLUDE_DIR LIBIGL_LIBRARIES IGL_VIEWER_SOURCES)
endif(NOT LIBIGL_FOUND)
|