diff --git a/Utilities/ITK/CMakeLists.txt b/Utilities/ITK/CMakeLists.txt index b0c4adc760ea6958d4db7c6e70ab65307833bfd0..4b86f684bac672df19d9e3d651f243a88356c332 100644 --- a/Utilities/ITK/CMakeLists.txt +++ b/Utilities/ITK/CMakeLists.txt @@ -5,8 +5,8 @@ PROJECT(ITK) #----------------------------------------------------------------------------- # ITK version number. An even minor number corresponds to releases. SET(ITK_VERSION_MAJOR "2") -SET(ITK_VERSION_MINOR "6") -SET(ITK_VERSION_PATCH "0") +SET(ITK_VERSION_MINOR "8") +SET(ITK_VERSION_PATCH "1") # Version string should not include patch level. The major.minor is # enough to distinguish available features of the toolkit. @@ -69,9 +69,47 @@ OPTION(ITK_CSWIG_JAVA "Build cswig Java wrapper support " OFF) # once. This has only been tested on gcc compilers. OPTION(ITK_EXPLICIT_INSTANTIATION "BETA-Try to explicitly build some of the core templates explictitly rather than over and over again." OFF) MARK_AS_ADVANCED(ITK_EXPLICIT_INSTANTIATION) -IF( ITK_EXPLICIT_INSTANTIATION ) - ADD_DEFINITIONS(-DITK_EXPLICIT_INSTANTIATION) -ENDIF( ITK_EXPLICIT_INSTANTIATION ) + + +#ROMAIN +#IF( ITK_EXPLICIT_INSTANTIATION ) +# ADD_DEFINITIONS(-DITK_EXPLICIT_INSTANTIATION) +#ENDIF( ITK_EXPLICIT_INSTANTIATION ) + +#----------------------------------------------------------------------------- +# ITK uses KWStyle for checking the coding style +OPTION(ITK_USE_KWSTYLE "Run KWStyle in order to check for violations of the coding standard." OFF) +MARK_AS_ADVANCED(ITK_USE_KWSTYLE) + +IF(ITK_USE_KWSTYLE) + FIND_PROGRAM(KWSTYLE_EXECUTABLE + NAMES KWStyle + PATHS + /usr/local/bin + ) + MARK_AS_ADVANCED(KWSTYLE_EXECUTABLE) + ADD_CUSTOM_COMMAND( + OUTPUT ${ITK_BINARY_DIR}/KWStyleReport.txt + COMMAND ${KWSTYLE_EXECUTABLE} + ARGS -xml ${ITK_BINARY_DIR}/ITK.kws.xml -o ${ITK_SOURCE_DIR}/Utilities/KWStyle/ITKOverwrite.txt -R -v -d ${ITK_SOURCE_DIR} + COMMENT "Coding Style Checker" + ) + ADD_CUSTOM_TARGET(StyleCheck DEPENDS ${ITK_BINARY_DIR}/KWStyleReport.txt) +ENDIF(ITK_USE_KWSTYLE) + +#----------------------------------------------------------------------------- +# ITK turn on concept checking +IF( NOT BORLAND ) + OPTION(ITK_USE_CONCEPT_CHECKING "Turn on concept checking to give helpful errors at compile time if a type cannot be used as a template parameter." OFF) + MARK_AS_ADVANCED(ITK_USE_CONCEPT_CHECKING) +ELSE( NOT BORLAND ) + SET(ITK_USE_CONCEPT_CHECKING OFF) + MARK_AS_ADVANCED(ITK_USE_CONCEPT_CHECKING) +ENDIF( NOT BORLAND ) + +#END ROMAIN + + # perl support does not work, contact bill hoffman at kitware # if you are interested in perl wrapping. It is close, but # not there yet. @@ -210,9 +248,44 @@ IF(ITK_USE_SYSTEM_VXL) ENDIF(VXL_FOUND) ELSE(ITK_USE_SYSTEM_VXL) SET(VXL_NETLIB_INCLUDE_DIR ${ITK_SOURCE_DIR}/Utilities/vxl/v3p/netlib) - SET(VXL_NUMERICS_LIBRARIES itkvnl itkvnl_algo itknetlib) + SET(VXL_NUMERICS_LIBRARIES itkvnl itkvnl_algo itknetlib itkvcl) ENDIF(ITK_USE_SYSTEM_VXL) +#ROMAIN + +IF(BORLAND) + SET(ITK_REQUIRED_CXX_FLAGS "${ITK_REQUIRED_CXX_FLAGS} -w- -whid -waus -wpar") + SET(ITK_REQUIRED_C_FLAGS "${ITK_REQUIRED_C_FLAGS} -w- -whid -waus -wpar") +ENDIF(BORLAND) + +CONFIGURE_FILE(${ITK_SOURCE_DIR}/Utilities/KWStyle/ITK.kws.xml.in + ${ITK_BINARY_DIR}/ITK.kws.xml) +# ITK_USE_SYSTEM_GDCM is provided so that you can use an installed or external +# version of gdcm. If its on, you must specify the variables +# Important: INCLUDE(${GDCM_USE_FILE}) *has* to be set after the +# INCLUDE_DIRECTORIES that sets all the include paths for ITK, otherwise +# if GDCM was build with VTK support, including it will bring the VTK +# include paths as well, and the wrong DICOMParser will be picked. + +OPTION(ITK_USE_SYSTEM_GDCM "Use an outside build of GDCM." OFF) +MARK_AS_ADVANCED(ITK_USE_SYSTEM_GDCM) +IF(ITK_USE_SYSTEM_GDCM) + FIND_PACKAGE(GDCM) + IF(GDCM_FOUND) + INCLUDE(${GDCM_USE_FILE}) + SET(ITK_GDCM_LIBRARIES gdcm) + ELSE(GDCM_FOUND) + MESSAGE(FATAL_ERROR "Must set GDCM_DIR for ITK_USE_SYSTEM_GDCM.") + ENDIF(GDCM_FOUND) + ELSE(ITK_USE_SYSTEM_GDCM) + SET(ITK_GDCM_LIBRARIES itkgdcm) + SET(GDCM_INCLUDE_DIR + ${ITK_SOURCE_DIR}/Utilities/gdcm/src + ) +ENDIF(ITK_USE_SYSTEM_GDCM) + +#ROMAIN END + # Provide options to use system versions of third-party libraries. ITK_THIRD_PARTY_OPTION(ZLIB zlib) ITK_THIRD_PARTY_OPTION(PNG png) diff --git a/Utilities/ITK/itkConfigure.h.in b/Utilities/ITK/itkConfigure.h.in index f9e6a88bff227ed1c5302c65607481b19f700a5f..f115fc4e8a5d94277defce10bd0eab1240a52ef5 100644 --- a/Utilities/ITK/itkConfigure.h.in +++ b/Utilities/ITK/itkConfigure.h.in @@ -1,5 +1,5 @@ /* - * here is where system comupted values get stored these values should only + * here is where system computed values get stored these values should only * change when the target compile platform changes */ @@ -42,6 +42,8 @@ #cmakedefine CMAKE_NO_ANSI_STRING_STREAM #cmakedefine CMAKE_NO_ANSI_FOR_SCOPE #cmakedefine ITK_CPP_FUNCTION +#cmakedefine ITK_USE_CONCEPT_CHECKING +#cmakedefine ITK_EXPLICIT_INSTANTIATION #define ITK_VERSION_MAJOR @ITK_VERSION_MAJOR@ #define ITK_VERSION_MINOR @ITK_VERSION_MINOR@ diff --git a/Utilities/ITK/itkIncludeDirectories.cmake b/Utilities/ITK/itkIncludeDirectories.cmake index 8afedcf4e14b497552bf0db9bfca60a5c6f62b2b..e348defb76804b77ed44d28a681fea7d9005a81e 100644 --- a/Utilities/ITK/itkIncludeDirectories.cmake +++ b/Utilities/ITK/itkIncludeDirectories.cmake @@ -9,6 +9,10 @@ IF(ITK_USE_SYSTEM_VXL) ) ENDIF(ITK_USE_SYSTEM_VXL) +IF(ITK_USE_SYSTEM_GDCM) + SET(ITK_INCLUDE_DIRS_SYSTEM ${GDCM_DIR}) +ENDIF(ITK_USE_SYSTEM_GDCM) + #----------------------------------------------------------------------------- # Include directories from the build tree. SET(ITK_INCLUDE_DIRS_BUILD_TREE ${ITK_BINARY_DIR}) @@ -32,6 +36,7 @@ SET(ITK_INCLUDE_DIRS_BUILD_TREE ${ITK_INCLUDE_DIRS_BUILD_TREE} ${ITK_SOURCE_DIR}/Utilities/expat ${ITK_SOURCE_DIR}/Utilities/nifti/niftilib ${ITK_SOURCE_DIR}/Utilities/nifti/znzlib +# ROMAIN ${ITK_BINARY_DIR}/Utilities/gdcm ${ITK_BINARY_DIR}/Utilities ${ITK_SOURCE_DIR}/Utilities @@ -60,6 +65,14 @@ IF(NOT ITK_USE_SYSTEM_VXL) ) ENDIF(NOT ITK_USE_SYSTEM_VXL) +# GDCM include directories. +IF(NOT ITK_USE_SYSTEM_GDCM) + SET(ITK_INCLUDE_DIRS_BUILD_TREE ${ITK_INCLUDE_DIRS_BUILD_TREE} + ${ITK_BINARY_DIR}/Utilities/gdcm + ${ITK_SOURCE_DIR}/Utilities/gdcm/src + ) +ENDIF(NOT ITK_USE_SYSTEM_GDCM) + # Patended include directories added only if the user explicitly enabled the # ITK_USE_PATENTED option. Users are responsible for getting a license from the # patent holders in order to use any of those methods. @@ -95,13 +108,14 @@ ENDIF(ITK_USE_SYSTEM_VXL) #----------------------------------------------------------------------------- # Include directories from the install tree. -SET(ITK_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/otb/Utilities/ITK") +SET(ITK_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/InsightToolkit") SET(ITK_INCLUDE_DIRS_INSTALL_TREE ${ITK_INCLUDE_DIRS_INSTALL_TREE} ${ITK_INSTALL_INCLUDE_DIR} ${ITK_INSTALL_INCLUDE_DIR}/Algorithms ${ITK_INSTALL_INCLUDE_DIR}/BasicFilters ${ITK_INSTALL_INCLUDE_DIR}/Common ${ITK_INSTALL_INCLUDE_DIR}/expat + ${ITK_INSTALL_INCLUDE_DIR}/gdcm/src ${ITK_INSTALL_INCLUDE_DIR}/Numerics ${ITK_INSTALL_INCLUDE_DIR}/IO ${ITK_INSTALL_INCLUDE_DIR}/Numerics/FEM