v0.15.0
Loading...
Searching...
No Matches
FindTetGen.cmake
Go to the documentation of this file.
1# - Try to find TETGEN
2
3if(NOT TETGEN_DIR)
4 set(TETGEN_DIR $ENV{TETGEN_DIR})
5endif(NOT TETGEN_DIR)
6
7if(TETGEN_DIR)
8 find_library(
9 TETGEN_LIBRARY
10 NAMES tet
11 PATHS ${TETGEN_DIR}/lib
12 NO_DEFAULT_PATH
13 NO_CMAKE_ENVIRONMENT_PATH
14 NO_CMAKE_PATH
15 NO_SYSTEM_ENVIRONMENT_PATH
16 NO_CMAKE_SYSTEM_PATH
17 CMAKE_FIND_ROOT_PATH_BOTH
18 )
19 find_path(TETGEN_HEADER
20 NAMES tetgen.h
21 PATHS ${TETGEN_DIR}/include
22 )
23 message(STATUS ${TETGEN_LIBRARY})
24 message(STATUS ${TETGEN_HEADER})
25 if(TETGEN_LIBRARY AND TETGEN_HEADER)
26 include_directories(${TETGEN_HEADER})
27 add_definitions(-DWITH_TETGEN)
28 endif(TETGEN_LIBRARY AND TETGEN_HEADER)
29endif(TETGEN_DIR)
30
31if(WITH_TETGEN)
32 ExternalProject_Add(
33 tetgen
34 PREFIX ${PROJECT_BINARY_DIR}/external/
35 URL https://bitbucket.org/likask/mofem-joseph/downloads/tetgen-1.5.0.tgz
36 CONFIGURE_COMMAND cmake ${PROJECT_BINARY_DIR}/external/src/tetgen
37 BUILD_COMMAND make
38 INSTALL_COMMAND ""
39 )
40 execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/external/lib/libtet.a)
41 add_custom_target(
42 copy_tetgen_fields
43 ALL
44 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/external/src/tetgen/include/tetgen.h ${PROJECT_BINARY_DIR}/external/include
45 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/external/src/tetgen-build/libtet* ${PROJECT_BINARY_DIR}/external/lib
46 COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/external/src/tetgen-build/tetgen ${PROJECT_BINARY_DIR}/external/bin
47 DEPENDS tetgen
48 )
49 add_dependencies(install_prerequisites tetgen copy_tetgen_fields)
50endif(WITH_TETGEN)
51
52if(WITH_TETGEN)
53 if(NOT TETGEN_LIBRARY)
54 set(TETGEN_DIR ${PROJECT_BINARY_DIR}/external CACHE FILEPATH "path to tetgen dir" FORCE)
55 set(TETGEN_HEADER ${TETGEN_DIR}/include)
56 include_directories(${TETGEN_HEADER})
57 set(TETGEN_LIBRARY ${TETGEN_DIR}/lib/libtet.a)
58 add_definitions(-DWITH_TETGEN)
59 message(STATUS ${TETGEN_LIBRARY})
60 message(STATUS ${TETGEN_HEADER})
61 endif(NOT TETGEN_LIBRARY)
62endif(WITH_TETGEN)