]> Creatis software - gdcm.git/blobdiff - CMakeLists.txt
ENH: 1. Now the test suite is working for real
[gdcm.git] / CMakeLists.txt
index b63a646df2292ec6e2bf2cf24206a53a3a3dc54a..a3ab0d5c34551ead0c67316de9d4a402a748fcb0 100644 (file)
@@ -9,14 +9,6 @@ SET(GDCM_VERSION_PATCH 0)
 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
@@ -28,8 +20,28 @@ MARK_AS_ADVANCED(GDCM_DATA_DIR)
 OPTION(BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON)\r
 SET(GDCM_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})\r
 \r
-#INCLUDE_DIRECTORIES(\r
+#-----------------------------------------------------------------------------\r
+# Does not work as of 2004/04/05\r
+#SET(CMAKE_CONFIGURATION_TYPES\r
+#  Debug\r
+#  Release\r
 #)\r
+#SET(CMAKE_BUILD_TYPE_INIT Debug)\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
@@ -40,64 +52,121 @@ SUBDIRS(
 )\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
+# 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
+# Deals with problem on SunOS:\r
+# ostrstream vs. ostringstream\r
+\r
+#-----------------------------------------------------------------------------\r
+# Why one should not use ADD_DEFINITIONS\r
+# http://www.cmake.org/pipermail/cmake/2003-September/004286.html\r
+\r
+#-----------------------------------------------------------------------------\r
+# __STDC_LIMIT_MACROS -> Refer to stdint.h\r
+# http://www.cmake.org/pipermail/cmake/2003-October/004369.html\r
+# http://www.cmake.org/pipermail/cmake/2003-October/004373.html\r
+\r
+#SET(GDCM_COMPILE_FLAGS  "-D__STDC_LIMIT_MACROS  -DPUB_DICT_PATH=\\\"${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}\\\""  )\r
+\r
+SET( GDCM_PUB_DICT_PATH "${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}")\r
+\r
+# SunOS + old gcc fixes:\r
+INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake)\r
+IF(CMAKE_NO_ANSI_STRING_STREAM)\r
+  SET(GDCM_NO_ANSI_STRING_STREAM 1)\r
+ENDIF(CMAKE_NO_ANSI_STRING_STREAM)\r
+\r
+INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)\r
+CHECK_INCLUDE_FILE("stdint.h"    CMAKE_HAVE_STDINT_H)\r
+\r
+IF(NOT CMAKE_HAVE_STDINT_H)\r
+  SET(GDCM_HAVE_NO_STDINT_H 1)\r
+ENDIF(NOT CMAKE_HAVE_STDINT_H)\r
+\r
+CONFIGURE_FILE(${GDCM_SOURCE_DIR}/gdcmConfigure.h.in\r
+               ${GDCM_BINARY_DIR}/gdcmConfigure.h @ONLY IMMEDIATE)\r
+\r
+INSTALL_FILES(/include .h gdcmConfigure.h)\r
+\r
+#-----------------------------------------------------------------------------\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
-\r
+# for third party to access gdcm through cmake\r
 # to be rewritten to include only the necessary\r
-#CONFIGURE_FILE(${GDCM_SOURCE_DIR}/UseGdcm.cmake.in \r
-#               ${GDCM_BINARY_DIR}/UseGdcm.cmake COPYONLY IMMEDIATE)\r
 \r
+CONFIGURE_FILE(\r
+  ${GDCM_SOURCE_DIR}/gdcmConfig.cmake.in \r
+  ${GDCM_BINARY_DIR}/gdcmConfig.cmake @ONLY IMMEDIATE\r
+  )\r
+\r
+# Export our 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
-\r
-# EXTRA_DIST = \\r
-#      AUTHORS \\r
-#      ChangeLog \\r
-#      COPYING \\r
-#      INSTALL \\r
-#      NEWS \\r
-#      README \\r
-#      TODO \\r
-#      gdcm.spec \\r
-#       gdcm.dsw\r
-\r
-#release:\r
-#      $(MAKE) dist distdir=$(PACKAGE)-$(VERSION)\r
-\r
-#snapshot:\r
-#      $(MAKE) dist distdir=$(PACKAGE)`date +"%y%m%d"`\r