PROJECT(GDCM)\r
CMAKE_MINIMUM_REQUIRED(VERSION 1.8)\r
\r
-# The GDCM version number.\r
+#-----------------------------------------------------------------------------\r
+# GDCM version number, usefull for packaging and doxygen doc:\r
SET(GDCM_VERSION_MAJOR 0)\r
SET(GDCM_VERSION_MINOR 4)\r
SET(GDCM_VERSION_PATCH 0)\r
SET(GDCM_VERSION "${GDCM_VERSION_MAJOR}.${GDCM_VERSION_MINOR}")\r
SET(GDCM_VERSION_FULL "${GDCM_VERSION}.${GDCM_VERSION_PATCH}")\r
\r
-#-----------------------------------------------------------------------------\r
-# Output directories.\r
-SET (LIBRARY_OUTPUT_PATH ${GDCM_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all libraries.")\r
-SET (EXECUTABLE_OUTPUT_PATH ${GDCM_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all executables.")\r
-MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)\r
-SET(GDCM_LIBRARY_PATH "${LIBRARY_OUTPUT_PATH}")\r
-SET(GDCM_EXECUTABLE_PATH "${EXECUTABLE_OUTPUT_PATH}")\r
-\r
#-----------------------------------------------------------------------------\r
# datadir in CMake:\r
-SET(GDCM_DATA_DIR "/share/gdcm" CACHE INTERNAL \r
+SET(GDCM_DATA_DIR "/share/gdcm/" CACHE INTERNAL \r
"Install location for data (relative to prefix).")\r
MARK_AS_ADVANCED(GDCM_DATA_DIR)\r
\r
OPTION(BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON)\r
SET(GDCM_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})\r
\r
-#INCLUDE_DIRECTORIES(\r
+SET(CMAKE_CONFIGURATION_TYPES\r
+ Debug\r
+ Release\r
+)\r
+SET(CMAKE_BUILD_TYPE_INIT Debug)\r
+\r
+# Deals with problem on SunOS:\r
+# ostrstream vs. ostringstream\r
+\r
+#SET(GDCM_NO_ANSI_STRING_STREAM\r
+# ${CMAKE_NO_ANSI_STRING_STREAM}\r
#)\r
+#CONFIGURE_FILE(${GDCM_SOURCE_DIR}/src/gdcmCommon.h.in\r
+# ${GDCM_BINARY_DIR}/src/gdcmCommon.h @ONLY IMMEDIATE)\r
+\r
+#-----------------------------------------------------------------------------\r
+# Output directories.\r
+#Put all stuff in one single dir for Win32, otherwise dll are a pain:\r
+IF(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
+ SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/bin)\r
+ELSE(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
+ SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/lib)\r
+ENDIF(WIN32 AND GDCM_BUILD_SHARED_LIBS)\r
+\r
+SET (EXECUTABLE_OUTPUT_PATH ${GDCM_SOURCE_DIR}/bin CACHE PATH "Single output directory for building all executables.")\r
+SET (LIBRARY_OUTPUT_PATH ${OUTPUT_LIB_DIR} CACHE PATH "Single output directory for building all libraries.")\r
+MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)\r
+SET(GDCM_LIBRARY_PATH "${LIBRARY_OUTPUT_PATH}")\r
+SET(GDCM_EXECUTABLE_PATH "${EXECUTABLE_OUTPUT_PATH}")\r
\r
#-----------------------------------------------------------------------------\r
# Build directory on which many applications depend\r
SUBDIRS(\r
src\r
- Test\r
Dicts\r
+ Test\r
+)\r
+\r
+#-----------------------------------------------------------------------------\r
+# Adding GDCM_DATA_ROOT\r
+FIND_PATH(GDCM_DATA_ROOT gdcm-ACR-LibIDO.acr\r
+ ${GDCM_SOURCE_DIR}/../gdcmData \r
+ $ENV{GDCM_DATA}\r
+ $ENV{PUB_DICT_PATH}/../../gdcmData\r
)\r
\r
#-----------------------------------------------------------------------------\r
-# Search VTK\r
-FIND_PACKAGE(VTK)\r
-# If vtk found\r
-IF(VTK_FOUND)\r
- OPTION(GDCM_VTK "Build VTK-GDCM Lib." OFF)\r
- IF(GDCM_VTK)\r
+# Add the testing directories\r
+OPTION(GDCM_BUILD_TESTING "Test the project" ON)\r
+IF(GDCM_BUILD_TESTING)\r
+ ENABLE_TESTING()\r
+ INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake)\r
+ SUBDIRS(Test)\r
+ENDIF(GDCM_BUILD_TESTING)\r
+\r
+\r
+#-----------------------------------------------------------------------------\r
+OPTION(GDCM_VTK "Build VTK-GDCM Lib." OFF)\r
+IF(GDCM_VTK)\r
+ # Search VTK\r
+ FIND_PACKAGE(VTK)\r
+ # If vtk found\r
+ IF(VTK_FOUND)\r
INCLUDE(${VTK_USE_FILE})\r
SUBDIRS(vtk)\r
- ENDIF(GDCM_VTK)\r
-ENDIF(VTK_FOUND)\r
+ ENDIF(VTK_FOUND)\r
+ENDIF(GDCM_VTK)\r
\r
#-----------------------------------------------------------------------------\r
-# Search Python libs:\r
-FIND_PACKAGE(PythonLibs)\r
-# If PythonLibs found\r
-IF(PYTHON_LIBRARY)\r
- OPTION(GDCM_WRAP_PYTHON "Wrap GDCM classes into the Python language." OFF)\r
- #if wrapping enable\r
- IF(GDCM_WRAP_PYTHON)\r
+OPTION(GDCM_WRAP_PYTHON "Wrap GDCM classes into the Python language." OFF)\r
+#if wrapping enable\r
+IF(GDCM_WRAP_PYTHON)\r
+ # Search Python libs:\r
+ FIND_PACKAGE(PythonLibs)\r
+ # If PythonLibs found\r
+ IF(PYTHON_LIBRARY)\r
SUBDIRS(gdcmPython)\r
- ENDIF(GDCM_WRAP_PYTHON)\r
-ENDIF(PYTHON_LIBRARY)\r
+ ENDIF(PYTHON_LIBRARY)\r
+ENDIF(GDCM_WRAP_PYTHON)\r
\r
#-----------------------------------------------------------------------------\r
-# Search Doxygen:\r
-FIND_PACKAGE(Doxygen)\r
-IF(DOXYGEN)\r
- OPTION(GDCM_DOXYGEN "Build source documentation using doxygen." OFF)\r
- # if doxygen enable\r
- IF(GDCM_DOXYGEN)\r
+OPTION(GDCM_DOXYGEN "Build source documentation using doxygen." OFF)\r
+# if doxygen enable\r
+IF(GDCM_DOXYGEN)\r
+ # Search Doxygen:\r
+ FIND_PACKAGE(Doxygen)\r
+ IF(DOXYGEN)\r
SUBDIRS(Doc)\r
- ENDIF(GDCM_DOXYGEN)\r
-ENDIF(DOXYGEN)\r
+ ENDIF(DOXYGEN)\r
+ENDIF(GDCM_DOXYGEN)\r
+\r
+#-----------------------------------------------------------------------------\r
+# Configure files with settings for use by the build.\r
+# for third party to access gdcm through cmake\r
+# to be rewritten to include only the necessary\r
+\r
+CONFIGURE_FILE(\r
+ ${GDCM_SOURCE_DIR}/gdcmConfig.cmake.in \r
+ ${GDCM_BINARY_DIR}/gdcmConfig.cmake @ONLY IMMEDIATE\r
+ )\r
+\r
+# Export uor build settings and library\r
+# dependencies for the use by the user projects.\r
+INCLUDE(\r
+ ${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake)\r
+\r
+CMAKE_EXPORT_BUILD_SETTINGS(\r
+ ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
+ )\r
+\r
+EXPORT_LIBRARY_DEPENDENCIES(\r
+ ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
+ )\r
+\r
+# Intall the packaging files for use by FIND_PACKAGE(GDCM) in user projects.\r
+INSTALL_FILES(/lin/gdcm FILES\r
+ ${GDCM_SOURCE_DIR}/gdcmUse.cmake\r
+ ${GDCM_BINARY_DIR}/gdcmConfig.cmake\r
+ ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake\r
+ ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake\r
+ )\r
\r
#-----------------------------------------------------------------------------\r
# Copy / paste from old m4 script:\r
# README \\r
# TODO \\r
# gdcm.spec \\r
-# gdcm.dsw\r
+# gdcm.dsw\r
\r
#release:\r
# $(MAKE) dist distdir=$(PACKAGE)-$(VERSION)\r