forked from Slicer/SlicerGitSVNArchive
/
External_teem.cmake
110 lines (93 loc) · 3.59 KB
/
External_teem.cmake
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
set(proj teem)
# Set dependency list
set(${proj}_DEPENDENCIES zlib)
if(NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_teem)
list(APPEND teem_DEPENDENCIES ${VTK_EXTERNAL_NAME})
endif()
# Include dependent projects if any
ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES)
if(${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj})
unset(Teem_DIR CACHE)
find_package(Teem REQUIRED NO_MODULE)
endif()
# Sanity checks
if(DEFINED Teem_DIR AND NOT EXISTS ${Teem_DIR})
message(FATAL_ERROR "Teem_DIR variable is defined but corresponds to nonexistent directory")
endif()
if(NOT DEFINED Teem_DIR AND NOT ${CMAKE_PROJECT_NAME}_USE_SYSTEM_${proj})
set(EXTERNAL_PROJECT_OPTIONAL_ARGS)
set(CMAKE_PROJECT_INCLUDE_EXTERNAL_PROJECT_ARG)
if(CTEST_USE_LAUNCHERS)
set(CMAKE_PROJECT_INCLUDE_EXTERNAL_PROJECT_ARG
"-DCMAKE_PROJECT_Teem_INCLUDE:FILEPATH=${CMAKE_ROOT}/Modules/CTestUseLaunchers.cmake")
endif()
if(${CMAKE_VERSION} VERSION_GREATER "2.8.11.2")
# Following CMake commit 2a7975398, the FindPNG.cmake module
# supports detection of release and debug libraries. Specifying only
# the release variable is enough to ensure the variable PNG_LIBRARY
# is internally set if the project is built either in Debug or Release.
list(APPEND EXTERNAL_PROJECT_OPTIONAL_ARGS
-DPNG_LIBRARY_RELEASE:FILEPATH=${PNG_LIBRARY}
)
else()
list(APPEND EXTERNAL_PROJECT_OPTIONAL_ARGS
-DPNG_LIBRARY:FILEPATH=${PNG_LIBRARY}
)
endif()
ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
GIT_REPOSITORY "${git_protocol}://github.com/Slicer/teem"
GIT_TAG e4746083c0e1dc0c137124c41eca5d23adf73bfa
SOURCE_DIR teem
BINARY_DIR teem-build
CMAKE_CACHE_ARGS
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
# Not needed -DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
-DBUILD_TESTING:BOOL=OFF
-DBUILD_SHARED_LIBS:BOOL=ON
${CMAKE_PROJECT_INCLUDE_EXTERNAL_PROJECT_ARG}
-DTeem_USE_LIB_INSTALL_SUBDIR:BOOL=ON
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
-DTeem_PTHREAD:BOOL=OFF
-DTeem_BZIP2:BOOL=OFF
-DTeem_ZLIB:BOOL=ON
-DTeem_PNG:BOOL=OFF
-DZLIB_ROOT:PATH=${ZLIB_ROOT}
-DZLIB_INCLUDE_DIR:PATH=${ZLIB_INCLUDE_DIR}
-DZLIB_LIBRARY:FILEPATH=${ZLIB_LIBRARY}
-DTeem_VTK_MANGLE:BOOL=OFF ## NOT NEEDED FOR EXTERNAL ZLIB outside of vtk
-DPNG_PNG_INCLUDE_DIR:PATH=${PNG_INCLUDE_DIR}
-DTeem_PNG_DLLCONF_IPATH:PATH=${VTK_DIR}/Utilities
${EXTERNAL_PROJECT_OPTIONAL_ARGS}
INSTALL_COMMAND ""
DEPENDS
${${proj}_DEPENDENCIES}
)
set(Teem_DIR ${CMAKE_BINARY_DIR}/teem-build)
#-----------------------------------------------------------------------------
# Launcher setting specific to build tree
# library paths
set(${proj}_LIBRARY_PATHS_LAUNCHER_BUILD ${Teem_DIR}/bin/<CMAKE_CFG_INTDIR>)
mark_as_superbuild(
VARS ${proj}_LIBRARY_PATHS_LAUNCHER_BUILD
LABELS "LIBRARY_PATHS_LAUNCHER_BUILD" "PATHS_LAUNCHER_BUILD"
)
#-----------------------------------------------------------------------------
# Launcher setting specific to install tree
# library paths
if(UNIX AND NOT APPLE)
set(${proj}_LIBRARY_PATHS_LAUNCHER_INSTALLED <APPLAUNCHER_DIR>/lib/Teem-1.12.0)
mark_as_superbuild(
VARS ${proj}_LIBRARY_PATHS_LAUNCHER_INSTALLED
LABELS "LIBRARY_PATHS_LAUNCHER_INSTALLED"
)
endif()
else()
ExternalProject_Add_Empty(${proj} DEPENDS ${${proj}_DEPENDENCIES})
endif()
mark_as_superbuild(
VARS Teem_DIR:PATH
LABELS "FIND_PACKAGE"
)