]> Creatis software - gdcm.git/blob - CMakeLists.txt
ENH: Adding automatic testing
[gdcm.git] / CMakeLists.txt
1 PROJECT(GDCM)\r
2 CMAKE_MINIMUM_REQUIRED(VERSION 1.8)\r
3 \r
4 #-----------------------------------------------------------------------------\r
5 # GDCM version number, usefull for packaging and doxygen doc:\r
6 SET(GDCM_VERSION_MAJOR 0)\r
7 SET(GDCM_VERSION_MINOR 4)\r
8 SET(GDCM_VERSION_PATCH 0)\r
9 SET(GDCM_VERSION "${GDCM_VERSION_MAJOR}.${GDCM_VERSION_MINOR}")\r
10 SET(GDCM_VERSION_FULL "${GDCM_VERSION}.${GDCM_VERSION_PATCH}")\r
11 \r
12 #-----------------------------------------------------------------------------\r
13 # datadir in CMake:\r
14 SET(GDCM_DATA_DIR "/share/gdcm/" CACHE INTERNAL \r
15   "Install location for data (relative to prefix).")\r
16 MARK_AS_ADVANCED(GDCM_DATA_DIR)\r
17 \r
18 #-----------------------------------------------------------------------------\r
19 # Build shared lib by default\r
20 OPTION(BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON)\r
21 SET(GDCM_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})\r
22 \r
23 SET(CMAKE_CONFIGURATION_TYPES\r
24   Debug\r
25   Release\r
26 )\r
27 SET(CMAKE_BUILD_TYPE_INIT Debug)\r
28 \r
29 # Deals with problem on SunOS:\r
30 # ostrstream vs. ostringstream\r
31 \r
32 #SET(GDCM_NO_ANSI_STRING_STREAM\r
33 #  ${CMAKE_NO_ANSI_STRING_STREAM}\r
34 #)\r
35 #CONFIGURE_FILE(${GDCM_SOURCE_DIR}/src/gdcmCommon.h.in\r
36 #               ${GDCM_BINARY_DIR}/src/gdcmCommon.h @ONLY IMMEDIATE)\r
37 \r
38 #-----------------------------------------------------------------------------\r
39 # Output directories.\r
40 #Put all stuff in one single dir for Win32, otherwise dll are a pain:\r
41 IF(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
42   SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/bin)\r
43 ELSE(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
44   SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/lib)\r
45 ENDIF(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
46 \r
47 SET (EXECUTABLE_OUTPUT_PATH ${GDCM_SOURCE_DIR}/bin CACHE PATH "Single output directory for building all executables.")\r
48 SET (LIBRARY_OUTPUT_PATH ${OUTPUT_LIB_DIR} CACHE PATH "Single output directory for building all libraries.")\r
49 MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)\r
50 SET(GDCM_LIBRARY_PATH "${LIBRARY_OUTPUT_PATH}")\r
51 SET(GDCM_EXECUTABLE_PATH "${EXECUTABLE_OUTPUT_PATH}")\r
52 \r
53 #-----------------------------------------------------------------------------\r
54 # Build directory on which many applications depend\r
55 SUBDIRS(\r
56   src\r
57   Dicts\r
58   Test\r
59 )\r
60 \r
61 #-----------------------------------------------------------------------------\r
62 # Add the testing directories\r
63 OPTION(GDCM_BUILD_TESTING "Test the project" ON)\r
64 IF(GDCM_BUILD_TESTING)\r
65   ENABLE_TESTING()\r
66   INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake)\r
67   SUBDIRS(Test)\r
68 ENDIF(GDCM_BUILD_TESTING)\r
69 \r
70 \r
71 #-----------------------------------------------------------------------------\r
72 OPTION(GDCM_VTK "Build VTK-GDCM Lib." OFF)\r
73 IF(GDCM_VTK)\r
74   # Search VTK\r
75   FIND_PACKAGE(VTK)\r
76   # If vtk found\r
77   IF(VTK_FOUND)\r
78     INCLUDE(${VTK_USE_FILE})\r
79     SUBDIRS(vtk)\r
80   ENDIF(VTK_FOUND)\r
81 ENDIF(GDCM_VTK)\r
82 \r
83 #-----------------------------------------------------------------------------\r
84 OPTION(GDCM_WRAP_PYTHON "Wrap GDCM classes into the Python language." OFF)\r
85 #if wrapping enable\r
86 IF(GDCM_WRAP_PYTHON)\r
87   # Search Python libs:\r
88   FIND_PACKAGE(PythonLibs)\r
89   # If PythonLibs found\r
90   IF(PYTHON_LIBRARY)\r
91     SUBDIRS(gdcmPython)\r
92   ENDIF(PYTHON_LIBRARY)\r
93 ENDIF(GDCM_WRAP_PYTHON)\r
94 \r
95 #-----------------------------------------------------------------------------\r
96 OPTION(GDCM_DOXYGEN "Build source documentation using doxygen." OFF)\r
97 # if doxygen enable\r
98 IF(GDCM_DOXYGEN)\r
99   # Search Doxygen:\r
100   FIND_PACKAGE(Doxygen)\r
101   IF(DOXYGEN)\r
102     SUBDIRS(Doc)\r
103   ENDIF(DOXYGEN)\r
104 ENDIF(GDCM_DOXYGEN)\r
105 \r
106 #-----------------------------------------------------------------------------\r
107 # Configure files with settings for use by the build.\r
108 # for third party to access gdcm through cmake\r
109 # to be rewritten to include only the necessary\r
110 \r
111 CONFIGURE_FILE(\r
112   ${GDCM_SOURCE_DIR}/gdcmConfig.cmake.in \r
113   ${GDCM_BINARY_DIR}/gdcmConfig.cmake @ONLY IMMEDIATE\r
114   )\r
115 \r
116 # Export uor build settings and library\r
117 # dependencies for the use by the user projects.\r
118 INCLUDE(\r
119   ${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)\r
120 \r
121 CMAKE_EXPORT_BUILD_SETTINGS(\r
122   ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
123   )\r
124 \r
125 EXPORT_LIBRARY_DEPENDENCIES(\r
126   ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
127   )\r
128 \r
129 # Intall the packaging files for use by FIND_PACKAGE(GDCM) in user projects.\r
130 INSTALL_FILES(/lin/gdcm FILES\r
131   ${GDCM_SOURCE_DIR}/gdcmUse.cmake\r
132   ${GDCM_BINARY_DIR}/gdcmConfig.cmake\r
133   ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
134   ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
135   )\r
136 \r
137 #-----------------------------------------------------------------------------\r
138 # Copy / paste from old m4 script:\r
139 \r
140 # EXTRA_DIST = \\r
141 #       AUTHORS \\r
142 #       ChangeLog \\r
143 #       COPYING \\r
144 #       INSTALL \\r
145 #       NEWS \\r
146 #       README \\r
147 #       TODO \\r
148 #       gdcm.spec \\r
149 #       gdcm.dsw\r
150 \r
151 #release:\r
152 #       $(MAKE) dist distdir=$(PACKAGE)-$(VERSION)\r
153 \r
154 #snapshot:\r
155 #       $(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`\r