From fd37fbfd219fffb75a31f561bd2dfc6b159285b8 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@c-s.fr>
Date: Fri, 19 Oct 2007 14:08:20 +0000
Subject: [PATCH] =?UTF-8?q?Arr=C3=AAtons=20de=20recompiler=20OSSIM=20!=20N?=
 =?UTF-8?q?ew=20option=20inside?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CMakeLists.txt                                 | 12 ++++++++++--
 Utilities/ITK/Code/CMakeLists.txt              |  4 ++++
 Utilities/ITK/Utilities/MetaIO/CMakeLists.txt  |  5 ++++-
 Utilities/ITK/Utilities/gdcm/CMakeLists.txt    |  4 ++++
 Utilities/ITK/Utilities/itkjpeg/CMakeLists.txt |  4 +++-
 Utilities/ITK/Utilities/itkpng/CMakeLists.txt  |  3 +++
 Utilities/ITK/Utilities/itktiff/CMakeLists.txt |  5 +++++
 Utilities/ITK/Utilities/itkzlib/CMakeLists.txt |  4 +++-
 Utilities/ITK/Utilities/kwsys/CMakeLists.txt   |  4 ++++
 Utilities/ITK/Utilities/vxl/CMakeLists.txt     |  3 +++
 10 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2fb16b6bd3..549902cca7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -278,6 +278,16 @@ ENDIF( OTB_SHOW_ALL_MSG_DEBUG )
 OPTION(OTB_DISABLE_CXX_EXAMPLES_TESTING "Disable examples testing." OFF)
 MARK_AS_ADVANCED(OTB_DISABLE_CXX_EXAMPLES_TESTING)
 
+#-----------------------------------------------------------------------------
+# Advanced option to avoid recompiling utilities at each cmake reconfiguration
+OPTION(OTB_DISABLE_UTILITIES_COMPILATION "Disable utilities compilation (developpers only - use at you own risk)" OFF)
+MARK_AS_ADVANCED(OTB_DISABLE_UTILITIES_COMPILATION)
+
+IF(OTB_DISABLE_UTILITIES_COMPILATION)
+LINK_DIRECTORIES("${OTB_BINARY_DIR}/bin")
+ENDIF(OTB_DISABLE_UTILITIES_COMPILATION)
+
+
 #-----------------------------------------------------------------------------
 # Option to define streaming activation in applications
 # Use by otbConfigure.h.in
@@ -617,5 +627,3 @@ ELSE("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 1.7)
           "Please upgrade to CMake 1.8.")
 ENDIF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" GREATER 1.7)
 
-
-
diff --git a/Utilities/ITK/Code/CMakeLists.txt b/Utilities/ITK/Code/CMakeLists.txt
index 1f9c7e9f7f..569e9bade5 100755
--- a/Utilities/ITK/Code/CMakeLists.txt
+++ b/Utilities/ITK/Code/CMakeLists.txt
@@ -1,3 +1,6 @@
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
+
 SUBDIRS(Common Numerics BasicFilters Algorithms SpatialObject)
 
 IF( ITK_USE_PATENTED )
@@ -11,3 +14,4 @@ ENDIF( ITK_USE_REVIEW )
 ## There should be no library dependances on IO, but IO may depend on other
 ## libraries, so build it last
 SUBDIRS(IO)
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/MetaIO/CMakeLists.txt b/Utilities/ITK/Utilities/MetaIO/CMakeLists.txt
index b3f720bac6..b1f6be9170 100755
--- a/Utilities/ITK/Utilities/MetaIO/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/MetaIO/CMakeLists.txt
@@ -16,6 +16,9 @@ PROJECT( ${METAIO_NAMESPACE} )
 
 INCLUDE_DIRECTORIES(${${METAIO_NAMESPACE}_SOURCE_DIR})
 
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
+
 ADD_LIBRARY(${METAIO_NAMESPACE}
   metaTypes.h
   metaUtils.cxx
@@ -145,5 +148,5 @@ ELSE(METAIO_FOR_VTK)
   ENDIF(METAIO_FOR_ITK)
 ENDIF(METAIO_FOR_VTK)
 
-
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
 
diff --git a/Utilities/ITK/Utilities/gdcm/CMakeLists.txt b/Utilities/ITK/Utilities/gdcm/CMakeLists.txt
index 955996bce6..cd14acb4ac 100755
--- a/Utilities/ITK/Utilities/gdcm/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/gdcm/CMakeLists.txt
@@ -57,10 +57,14 @@ ENDIF("GDCM_COMPILER_HAS_FUNCTION" MATCHES "^GDCM_COMPILER_HAS_FUNCTION$")
 
 #-----------------------------------------------------------------------------
 # Build directory on which many applications depend
+
+# ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT DISABLE_OTB_UTILITIES_COMPILATION)
 SUBDIRS(
   Dicts
   src
 )
+ENDIF(NOT DISABLE_OTB_UTILITIES_COMPILATION)
 
 # Set the place for the public dictionary, must be set before gdcmConfigure.h
 SET( GDCM_PUB_DICT_PATH "${CMAKE_INSTALL_PREFIX}${GDCM_DATA_DIR}")
diff --git a/Utilities/ITK/Utilities/itkjpeg/CMakeLists.txt b/Utilities/ITK/Utilities/itkjpeg/CMakeLists.txt
index d493cfb8e2..d12d303763 100755
--- a/Utilities/ITK/Utilities/itkjpeg/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/itkjpeg/CMakeLists.txt
@@ -140,5 +140,7 @@ MACRO(ITK_JPEG_BODY BITRATE)
   ENDIF(NOT ITK_INSTALL_NO_LIBRARIES)
 ENDMACRO(ITK_JPEG_BODY)
 
+# ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT DISABLE_OTB_UTILITIES_COMPILATION)
 SUBDIRS(8 12 16)
-
+ENDIF(NOT DISABLE_OTB_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/itkpng/CMakeLists.txt b/Utilities/ITK/Utilities/itkpng/CMakeLists.txt
index 5cada7e471..f02bcfa0c9 100755
--- a/Utilities/ITK/Utilities/itkpng/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/itkpng/CMakeLists.txt
@@ -25,6 +25,8 @@ CONFIGURE_FILE(${ITKPNG_SOURCE_DIR}/.NoDartCoverage
 CONFIGURE_FILE(${ITKPNG_SOURCE_DIR}/pngDllConfig.h.in
                ${ITKPNG_BINARY_DIR}/pngDllConfig.h)
 
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
 ADD_LIBRARY(itkpng ${PNG_SRCS})
 TARGET_LINK_LIBRARIES(itkpng ${ITK_ZLIB_LIBRARIES})
 
@@ -49,3 +51,4 @@ IF(NOT ITK_INSTALL_NO_DEVELOPMENT)
     DESTINATION ${ITK_INSTALL_INCLUDE_DIR_CM24}/Utilities/itkpng
     COMPONENT Development)
 ENDIF(NOT ITK_INSTALL_NO_DEVELOPMENT)
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/itktiff/CMakeLists.txt b/Utilities/ITK/Utilities/itktiff/CMakeLists.txt
index ff0cf2f179..35c7c0edaa 100755
--- a/Utilities/ITK/Utilities/itktiff/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/itktiff/CMakeLists.txt
@@ -137,6 +137,10 @@ CONFIGURE_FILE(${ITKTIFF_SOURCE_DIR}/tiffDllConfig.h.in
 CONFIGURE_FILE(${ITKTIFF_SOURCE_DIR}/tif_config.h.in
   ${ITKTIFF_BINARY_DIR}/tif_config.h)
 
+
+# ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
+
 ADD_LIBRARY(itktiff ${common_SRCS})
 TARGET_LINK_LIBRARIES(itktiff ${ITK_ZLIB_LIBRARIES} itkjpeg8)
 
@@ -167,3 +171,4 @@ IF(NOT ITK_INSTALL_NO_DEVELOPMENT)
     DESTINATION ${ITK_INSTALL_INCLUDE_DIR_CM24}/Utilities/itktiff
     COMPONENT Development)
 ENDIF(NOT ITK_INSTALL_NO_DEVELOPMENT)
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/itkzlib/CMakeLists.txt b/Utilities/ITK/Utilities/itkzlib/CMakeLists.txt
index d676e8cb8a..5da67d8af8 100755
--- a/Utilities/ITK/Utilities/itkzlib/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/itkzlib/CMakeLists.txt
@@ -29,7 +29,8 @@ CONFIGURE_FILE(${ITKZLIB_SOURCE_DIR}/.NoDartCoverage
 CONFIGURE_FILE(${ITKZLIB_SOURCE_DIR}/zlibDllConfig.h.in
                ${ITKZLIB_BINARY_DIR}/zlibDllConfig.h)
 
-
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
 ADD_LIBRARY(itkzlib ${ZLIB_SRCS})
 
 # Apply user-defined properties to the library target.
@@ -53,3 +54,4 @@ IF(NOT ITK_INSTALL_NO_DEVELOPMENT)
     DESTINATION ${ITK_INSTALL_INCLUDE_DIR_CM24}/Utilities/itkzlib
     COMPONENT Development)
 ENDIF(NOT ITK_INSTALL_NO_DEVELOPMENT)
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/kwsys/CMakeLists.txt b/Utilities/ITK/Utilities/kwsys/CMakeLists.txt
index e7999571b8..cbb15a4652 100755
--- a/Utilities/ITK/Utilities/kwsys/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/kwsys/CMakeLists.txt
@@ -733,6 +733,8 @@ FOREACH(h ${KWSYS_HXX_FILES})
   ENDIF(KWSYS_HEADER_INSTALL_DIR)
 ENDFOREACH(h)
 
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
 #-----------------------------------------------------------------------------
 # Add the library with the configured name and list of sources.
 IF(KWSYS_C_SRCS OR KWSYS_CXX_SRCS)
@@ -957,3 +959,5 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
     ENDIF(COMMAND SET_TESTS_PROPERTIES AND COMMAND GET_TEST_PROPERTY AND KWSYS_STANDALONE)
   ENDIF(BUILD_TESTING)
 ENDIF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
+
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
diff --git a/Utilities/ITK/Utilities/vxl/CMakeLists.txt b/Utilities/ITK/Utilities/vxl/CMakeLists.txt
index f41f4e16c6..627fe2e77c 100755
--- a/Utilities/ITK/Utilities/vxl/CMakeLists.txt
+++ b/Utilities/ITK/Utilities/vxl/CMakeLists.txt
@@ -18,6 +18,8 @@ SET(MODULE_PATH ${vxl_SOURCE_DIR}/config/cmake/Modules)
 SUBDIRS(config/cmake/config)
 
 # Build the core vxl + support libraries
+#ADDED BY OTB DEVELOPPERS TO AVOID INTENSIVE RECOMPILATION
+IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
 SUBDIRS(vcl v3p core)
 
 # Standard include directories.
@@ -53,3 +55,4 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
   
+ENDIF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
-- 
GitLab