1 # Generate the GDCMConfig.cmake file in the build tree. Also configure
2 # one for installation. The file tells external projects how to use
5 # Help store a literal dollar in a string. CMake 2.2 allows escaped
6 # dollars but we have to support CMake 2.0.
9 #-----------------------------------------------------------------------------
10 # Settings shared between the build tree and install tree.
12 EXPORT_LIBRARY_DEPENDENCIES(
13 ${GDCM_BINARY_DIR}/GDCMLibraryDepends.cmake)
14 INCLUDE(${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)
15 CMAKE_EXPORT_BUILD_SETTINGS(
16 ${GDCM_BINARY_DIR}/GDCMBuildSettings.cmake)
18 IF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
19 INSTALL_FILES(${GDCM_INSTALL_PACKAGE_DIR} FILES
20 ${CMAKE_CURRENT_SOURCE_DIR}/UseGDCM.cmake
21 ${GDCM_BINARY_DIR}/GDCMLibraryDepends.cmake
22 ${GDCM_BINARY_DIR}/GDCMBuildSettings.cmake
24 ENDIF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
26 #-----------------------------------------------------------------------------
27 # Settings specific to the build tree.
29 # The install-only section is empty for the build tree.
30 SET(GDCM_CONFIG_INSTALL_ONLY)
33 SET(GDCM_USE_FILE_CONFIG
34 ${CMAKE_CURRENT_SOURCE_DIR}/UseGDCM.cmake)
36 # The build settings file.
37 SET(GDCM_BUILD_SETTINGS_FILE_CONFIG
38 ${GDCM_BINARY_DIR}/GDCMBuildSettings.cmake)
40 # The library directories.
41 SET(GDCM_LIBRARY_DIRS_CONFIG ${GDCM_LIBRARY_DIRS})
43 # The runtime directories.
44 SET(GDCM_RUNTIME_DIRS_CONFIG ${GDCM_RUNTIME_DIRS})
46 # The include directories.
47 SET(GDCM_INCLUDE_DIRS_CONFIG ${GDCM_INCLUDE_PATH})
49 # The library dependencies file.
50 SET(GDCM_LIBRARY_DEPENDS_FILE
51 ${GDCM_BINARY_DIR}/GDCMLibraryDepends.cmake)
53 # The CMake macros dir.
54 SET(GDCM_CMAKE_DIR_CONFIG
58 SET(GDCM_VTK_DIR_CONFIG ${VTK_DIR})
60 # The build configuration information.
61 SET(GDCM_CONFIGURATION_TYPES_CONFIG ${GDCM_CONFIGURATION_TYPES})
62 SET(GDCM_BUILD_TYPE_CONFIG ${CMAKE_BUILD_TYPE})
64 # Configure GDCMConfig.cmake for the build tree.
66 ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
67 ${GDCM_BINARY_DIR}/GDCMConfig.cmake @ONLY IMMEDIATE)
69 #-----------------------------------------------------------------------------
70 # Settings specific to the install tree.
73 SET(GDCM_USE_FILE_CONFIG
74 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/UseGDCM.cmake)
76 # The build settings file.
77 SET(GDCM_BUILD_SETTINGS_FILE_CONFIG
78 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/GDCMBuildSettings.cmake)
80 # The library directories.
81 IF(CYGWIN AND GDCM_BUILD_SHARED_LIBS)
82 # In Cygwin programs directly link to the .dll files.
83 SET(GDCM_LIBRARY_DIRS_CONFIG
84 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_BIN_DIR})
85 ELSE(CYGWIN AND GDCM_BUILD_SHARED_LIBS)
86 SET(GDCM_LIBRARY_DIRS_CONFIG
87 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_LIB_DIR})
88 ENDIF(CYGWIN AND GDCM_BUILD_SHARED_LIBS)
90 # The runtime directories.
92 SET(GDCM_RUNTIME_DIRS_CONFIG
93 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_BIN_DIR})
95 SET(GDCM_RUNTIME_DIRS_CONFIG
96 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_LIB_DIR})
99 # The include directories.
100 SET(GDCM_INCLUDE_DIRS_CONFIG
101 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_INCLUDE_DIR})
103 # The library dependencies file.
104 SET(GDCM_LIBRARY_DEPENDS_FILE
105 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/GDCMLibraryDepends.cmake)
107 # The CMake macros dir.
108 SET(GDCM_CMAKE_DIR_CONFIG
109 ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/CMake)
112 # If VTK_BINARY_DIR is set, then GDCM is part of a larger parent project
113 # that also builds VTK. In that case, GDCM_VTK_INSTALL_PACKAGE_DIR
114 # should be set to the value of VTK_INSTALL_PACKAGE_DIR. Otherwise, if not set,
115 # then we are using an outside VTK whose location will not change when we
119 IF(NOT GDCM_VTK_INSTALL_PACKAGE_DIR)
121 "GDCM_VTK_INSTALL_PACKAGE_DIR must be set by the parent project to the value of VTK_INSTALL_PACKAGE_DIR it uses to configure VTK.")
122 ENDIF(NOT GDCM_VTK_INSTALL_PACKAGE_DIR)
123 SET(GDCM_VTK_DIR_CONFIG ${GDCM_VTK_INSTALL_PACKAGE_DIR})
125 SET(GDCM_VTK_DIR_CONFIG ${VTK_DIR})
126 ENDIF(VTK_BINARY_DIR)
129 # The build configuration information.
130 # The install tree only has one configuration.
131 SET(GDCM_CONFIGURATION_TYPES_CONFIG)
133 # Configure GDCMConfig.cmake for the install tree.
135 # Construct the proper number of GET_FILENAME_COMPONENT(... PATH)
136 # calls to compute the installation prefix from GDCM_DIR.
137 STRING(REGEX REPLACE "/" ";" GDCM_INSTALL_PACKAGE_DIR_COUNT
138 "${GDCM_INSTALL_PACKAGE_DIR}")
139 SET(GDCM_CONFIG_INSTALL_ONLY "
140 # Compute the installation prefix from GDCM_DIR.
141 SET(GDCM_INSTALL_PREFIX \"${DOLLAR}{GDCM_DIR}\")
143 FOREACH(p ${GDCM_INSTALL_PACKAGE_DIR_COUNT})
144 SET(GDCM_CONFIG_INSTALL_ONLY
145 "${GDCM_CONFIG_INSTALL_ONLY}GET_FILENAME_COMPONENT(GDCM_INSTALL_PREFIX \"${DOLLAR}{GDCM_INSTALL_PREFIX}\" PATH)\n"
149 IF(CMAKE_CONFIGURATION_TYPES)
150 # There are multiple build configurations. Configure one
151 # GDCMConfig.cmake for each configuration.
152 FOREACH(config ${CMAKE_CONFIGURATION_TYPES})
153 SET(GDCM_BUILD_TYPE_CONFIG ${config})
155 ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
156 ${CMAKE_CURRENT_BINARY_DIR}/${config}/GDCMConfig.cmake
160 # Install the config file corresponding to the build configuration
161 # specified when building the install target. The BUILD_TYPE variable
162 # will be set while CMake is processing the install files.
163 IF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
164 INSTALL_FILES(${GDCM_INSTALL_PACKAGE_DIR} FILES
165 ${CMAKE_CURRENT_BINARY_DIR}/${DOLLAR}{BUILD_TYPE}/GDCMConfig.cmake)
166 ENDIF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
167 ELSE(CMAKE_CONFIGURATION_TYPES)
168 # There is only one build configuration. Configure one GDCMConfig.cmake.
169 SET(GDCM_BUILD_TYPE_CONFIG ${CMAKE_BUILD_TYPE})
171 ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
172 ${CMAKE_CURRENT_BINARY_DIR}/GDCMConfig.cmake @ONLY IMMEDIATE)
174 # Setup an install rule for the config file.
175 IF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
176 INSTALL_FILES(${GDCM_INSTALL_PACKAGE_DIR} FILES
177 ${CMAKE_CURRENT_BINARY_DIR}/GDCMConfig.cmake)
178 ENDIF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
179 ENDIF(CMAKE_CONFIGURATION_TYPES)