]> Creatis software - gdcm.git/blob - CMake/ExportConfiguration/CMakeLists.txt
Fix mistypings
[gdcm.git] / CMake / ExportConfiguration / CMakeLists.txt
1 # Generate the GDCMConfig.cmake file in the build tree. Also configure
2 # one for installation. The file tells external projects how to use
3 # GDCM.
4
5 # Help store a literal dollar in a string.  CMake 2.2 allows escaped
6 # dollars but we have to support CMake 2.0.
7 SET(DOLLAR "$")
8
9 #-----------------------------------------------------------------------------
10 # Settings shared between the build tree and install tree.
11
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)
17
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
23     )
24 ENDIF(NOT GDCM_INSTALL_NO_DEVELOPMENT)
25
26 #-----------------------------------------------------------------------------
27 # Settings specific to the build tree.
28
29 # The install-only section is empty for the build tree.
30 SET(GDCM_CONFIG_INSTALL_ONLY)
31
32 # The "use" file.
33 SET(GDCM_USE_FILE_CONFIG 
34   ${CMAKE_CURRENT_SOURCE_DIR}/UseGDCM.cmake)
35
36 # The build settings file.
37 SET(GDCM_BUILD_SETTINGS_FILE_CONFIG 
38   ${GDCM_BINARY_DIR}/GDCMBuildSettings.cmake)
39
40 # The library directories.
41 SET(GDCM_LIBRARY_DIRS_CONFIG ${GDCM_LIBRARY_DIRS})
42
43 # The runtime directories.
44 SET(GDCM_RUNTIME_DIRS_CONFIG ${GDCM_RUNTIME_DIRS})
45
46 # The include directories.
47 SET(GDCM_INCLUDE_DIRS_CONFIG ${GDCM_INCLUDE_PATH})
48
49 # The library dependencies file.
50 SET(GDCM_LIBRARY_DEPENDS_FILE 
51   ${GDCM_BINARY_DIR}/GDCMLibraryDepends.cmake)
52
53 # The CMake macros dir.
54 SET(GDCM_CMAKE_DIR_CONFIG 
55   ${GDCM_CMAKE_DIR})
56
57 # The VTK options.
58 SET(GDCM_VTK_DIR_CONFIG ${VTK_DIR})
59
60 # The build configuration information.
61 SET(GDCM_CONFIGURATION_TYPES_CONFIG ${GDCM_CONFIGURATION_TYPES})
62 SET(GDCM_BUILD_TYPE_CONFIG ${CMAKE_BUILD_TYPE})
63
64 # Configure GDCMConfig.cmake for the build tree.
65 CONFIGURE_FILE(
66   ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
67   ${GDCM_BINARY_DIR}/GDCMConfig.cmake @ONLY IMMEDIATE)
68
69 #-----------------------------------------------------------------------------
70 # Settings specific to the install tree.
71
72 # The "use" file.
73 SET(GDCM_USE_FILE_CONFIG 
74   ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/UseGDCM.cmake)
75
76 # The build settings file.
77 SET(GDCM_BUILD_SETTINGS_FILE_CONFIG 
78   ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/GDCMBuildSettings.cmake)
79
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)
89
90 # The runtime directories.
91 IF(WIN32)
92   SET(GDCM_RUNTIME_DIRS_CONFIG 
93     ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_BIN_DIR})
94 ELSE(WIN32)
95   SET(GDCM_RUNTIME_DIRS_CONFIG 
96     ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_LIB_DIR})
97 ENDIF(WIN32)
98
99 # The include directories.
100 SET(GDCM_INCLUDE_DIRS_CONFIG
101   ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_INCLUDE_DIR})
102
103 # The library dependencies file.
104 SET(GDCM_LIBRARY_DEPENDS_FILE 
105   ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/GDCMLibraryDepends.cmake)
106
107 # The CMake macros dir.
108 SET(GDCM_CMAKE_DIR_CONFIG 
109   ${DOLLAR}{GDCM_INSTALL_PREFIX}${GDCM_INSTALL_PACKAGE_DIR}/CMake)
110
111 # The VTK options.
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
116 # install.
117 IF(GDCM_VTK)
118   IF(VTK_BINARY_DIR)
119     IF(NOT GDCM_VTK_INSTALL_PACKAGE_DIR)
120       MESSAGE(
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})
124   ELSE(VTK_BINARY_DIR)
125     SET(GDCM_VTK_DIR_CONFIG ${VTK_DIR})
126   ENDIF(VTK_BINARY_DIR)
127 ENDIF(GDCM_VTK)
128
129 # The build configuration information.
130 # The install tree only has one configuration.
131 SET(GDCM_CONFIGURATION_TYPES_CONFIG)
132
133 # Configure GDCMConfig.cmake for the install tree.
134
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}\")
142 ")
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"
146     )
147 ENDFOREACH(p)
148
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})
154     CONFIGURE_FILE(
155       ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
156       ${CMAKE_CURRENT_BINARY_DIR}/${config}/GDCMConfig.cmake
157       @ONLY IMMEDIATE)
158   ENDFOREACH(config)
159
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})
170   CONFIGURE_FILE(
171     ${CMAKE_CURRENT_SOURCE_DIR}/GDCMConfig.cmake.in
172     ${CMAKE_CURRENT_BINARY_DIR}/GDCMConfig.cmake @ONLY IMMEDIATE)
173
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)