X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=0ada9b14e5bdbc8fe418706252dd63295e9387c1;hb=46c9c13ea7d5b2a2fec304f12b3db77c8028caea;hp=b63a646df2292ec6e2bf2cf24206a53a3a3dc54a;hpb=79f126d06fd384c26dd0fb7f4db6268ad9fe4458;p=gdcm.git diff --git a/CMakeLists.txt b/CMakeLists.txt index b63a646d..0ada9b14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,14 +9,6 @@ SET(GDCM_VERSION_PATCH 0) SET(GDCM_VERSION "${GDCM_VERSION_MAJOR}.${GDCM_VERSION_MINOR}") SET(GDCM_VERSION_FULL "${GDCM_VERSION}.${GDCM_VERSION_PATCH}") -#----------------------------------------------------------------------------- -# Output directories. -SET (LIBRARY_OUTPUT_PATH ${GDCM_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all libraries.") -SET (EXECUTABLE_OUTPUT_PATH ${GDCM_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all executables.") -MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH) -SET(GDCM_LIBRARY_PATH "${LIBRARY_OUTPUT_PATH}") -SET(GDCM_EXECUTABLE_PATH "${EXECUTABLE_OUTPUT_PATH}") - #----------------------------------------------------------------------------- # datadir in CMake: SET(GDCM_DATA_DIR "/share/gdcm/" CACHE INTERNAL @@ -28,8 +20,35 @@ MARK_AS_ADVANCED(GDCM_DATA_DIR) OPTION(BUILD_SHARED_LIBS "Build GDCM with shared libraries." ON) SET(GDCM_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) -#INCLUDE_DIRECTORIES( +SET(CMAKE_CONFIGURATION_TYPES + Debug + Release +) +SET(CMAKE_BUILD_TYPE_INIT Debug) + +# Deals with problem on SunOS: +# ostrstream vs. ostringstream + +#SET(GDCM_NO_ANSI_STRING_STREAM +# ${CMAKE_NO_ANSI_STRING_STREAM} #) +#CONFIGURE_FILE(${GDCM_SOURCE_DIR}/src/gdcmCommon.h.in +# ${GDCM_BINARY_DIR}/src/gdcmCommon.h @ONLY IMMEDIATE) + +#----------------------------------------------------------------------------- +# Output directories. +#Put all stuff in one single dir for Win32, otherwise dll are a pain: +IF(WIN32 AND GDCM_BUILD_SHARED_LIBS) + SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/bin) +ELSE(WIN32 AND GDCM_BUILD_SHARED_LIBS) + SET(OUTPUT_LIB_DIR ${GDCM_SOURCE_DIR}/lib) +ENDIF(WIN32 AND GDCM_BUILD_SHARED_LIBS) + +SET (EXECUTABLE_OUTPUT_PATH ${GDCM_SOURCE_DIR}/bin CACHE PATH "Single output directory for building all executables.") +SET (LIBRARY_OUTPUT_PATH ${OUTPUT_LIB_DIR} CACHE PATH "Single output directory for building all libraries.") +MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH) +SET(GDCM_LIBRARY_PATH "${LIBRARY_OUTPUT_PATH}") +SET(GDCM_EXECUTABLE_PATH "${EXECUTABLE_OUTPUT_PATH}") #----------------------------------------------------------------------------- # Build directory on which many applications depend @@ -40,47 +59,88 @@ SUBDIRS( ) #----------------------------------------------------------------------------- -# Search VTK -FIND_PACKAGE(VTK) -# If vtk found -IF(VTK_FOUND) - OPTION(GDCM_VTK "Build VTK-GDCM Lib." OFF) - IF(GDCM_VTK) +# Adding GDCM_DATA_ROOT +FIND_PATH(GDCM_DATA_ROOT gdcm-ACR-LibIDO.acr + ${GDCM_SOURCE_DIR}/../gdcmData + $ENV{GDCM_DATA} + $ENV{PUB_DICT_PATH}/../../gdcmData +) + +#----------------------------------------------------------------------------- +# Add the testing directories +OPTION(GDCM_BUILD_TESTING "Test the project" ON) +IF(GDCM_BUILD_TESTING) + ENABLE_TESTING() + INCLUDE (${CMAKE_ROOT}/Modules/Dart.cmake) + SUBDIRS(Test) +ENDIF(GDCM_BUILD_TESTING) + + +#----------------------------------------------------------------------------- +OPTION(GDCM_VTK "Build VTK-GDCM Lib." OFF) +IF(GDCM_VTK) + # Search VTK + FIND_PACKAGE(VTK) + # If vtk found + IF(VTK_FOUND) INCLUDE(${VTK_USE_FILE}) SUBDIRS(vtk) - ENDIF(GDCM_VTK) -ENDIF(VTK_FOUND) + ENDIF(VTK_FOUND) +ENDIF(GDCM_VTK) #----------------------------------------------------------------------------- -# Search Python libs: -FIND_PACKAGE(PythonLibs) -# If PythonLibs found -IF(PYTHON_LIBRARY) - OPTION(GDCM_WRAP_PYTHON "Wrap GDCM classes into the Python language." OFF) - #if wrapping enable - IF(GDCM_WRAP_PYTHON) +OPTION(GDCM_WRAP_PYTHON "Wrap GDCM classes into the Python language." OFF) +#if wrapping enable +IF(GDCM_WRAP_PYTHON) + # Search Python libs: + FIND_PACKAGE(PythonLibs) + # If PythonLibs found + IF(PYTHON_LIBRARY) SUBDIRS(gdcmPython) - ENDIF(GDCM_WRAP_PYTHON) -ENDIF(PYTHON_LIBRARY) + ENDIF(PYTHON_LIBRARY) +ENDIF(GDCM_WRAP_PYTHON) #----------------------------------------------------------------------------- -# Search Doxygen: -FIND_PACKAGE(Doxygen) -IF(DOXYGEN) - OPTION(GDCM_DOXYGEN "Build source documentation using doxygen." OFF) - # if doxygen enable - IF(GDCM_DOXYGEN) +OPTION(GDCM_DOXYGEN "Build source documentation using doxygen." OFF) +# if doxygen enable +IF(GDCM_DOXYGEN) + # Search Doxygen: + FIND_PACKAGE(Doxygen) + IF(DOXYGEN) SUBDIRS(Doc) - ENDIF(GDCM_DOXYGEN) -ENDIF(DOXYGEN) + ENDIF(DOXYGEN) +ENDIF(GDCM_DOXYGEN) #----------------------------------------------------------------------------- # Configure files with settings for use by the build. - +# for third party to access gdcm through cmake # to be rewritten to include only the necessary -#CONFIGURE_FILE(${GDCM_SOURCE_DIR}/UseGdcm.cmake.in -# ${GDCM_BINARY_DIR}/UseGdcm.cmake COPYONLY IMMEDIATE) +CONFIGURE_FILE( + ${GDCM_SOURCE_DIR}/gdcmConfig.cmake.in + ${GDCM_BINARY_DIR}/gdcmConfig.cmake @ONLY IMMEDIATE + ) + +# Export uor build settings and library +# dependencies for the use by the user projects. +INCLUDE( + ${CMAKE_ROOT}/Modules/CMakeExportBuildSettings.cmake) + +CMAKE_EXPORT_BUILD_SETTINGS( + ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake + ) + +EXPORT_LIBRARY_DEPENDENCIES( + ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake + ) + +# Intall the packaging files for use by FIND_PACKAGE(GDCM) in user projects. +INSTALL_FILES(/lin/gdcm FILES + ${GDCM_SOURCE_DIR}/gdcmUse.cmake + ${GDCM_BINARY_DIR}/gdcmConfig.cmake + ${GDCM_BINARY_DIR}/gdcmBuildSettings.cmake + ${GDCM_BINARY_DIR}/gdcmLibraryDepends.cmake + ) #----------------------------------------------------------------------------- # Copy / paste from old m4 script: