v0.14.0
FindTetGen.cmake
Go to the documentation of this file.
1 # - Try to find TETGEN
2 
3 if(NOT TETGEN_DIR)
4  set(TETGEN_DIR $ENV{TETGEN_DIR})
5 endif(NOT TETGEN_DIR)
6 
7 if(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)
29 endif(TETGEN_DIR)
30 
31 if(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)
50 endif(WITH_TETGEN)
51 
52 if(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)
62 endif(WITH_TETGEN)