From affc0436616c067bac08656f8e9fdff76a2c975f Mon Sep 17 00:00:00 2001
From: Thomas Feuvrier <thomas.feuvrier@c-s.fr>
Date: Thu, 16 Apr 2009 16:43:33 +0200
Subject: [PATCH] ENH: Imporve CMakeLIsts.txt on Windows for CPack capability

---
 CMakeLists.txt                    |   6 +-
 OTBConfig.cmake.in                |   4 +
 Utilities/FLTK/src/CMakeLists.txt |  24 ++---
 otbGenerateOTBConfig.cmake        |  60 +++++++++--
 otbIncludeDirectories.cmake       | 163 +++++++++++++++++-------------
 5 files changed, 159 insertions(+), 98 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ea93adf3d5..4f88e7f248 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -625,9 +625,9 @@ ENDIF(BUILD_TESTING)
 # Output directories.
 
 
-IF(NOT LIBRARY_OUTPUT_PATH)
-   SET (LIBRARY_OUTPUT_PATH ${OTB_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
-ENDIF(NOT LIBRARY_OUTPUT_PATH)
+#       IF(NOT LIBRARY_OUTPUT_PATH)
+SET (LIBRARY_OUTPUT_PATH ${OTB_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
+#       ENDIF(NOT LIBRARY_OUTPUT_PATH)
 IF(NOT EXECUTABLE_OUTPUT_PATH)
    SET (EXECUTABLE_OUTPUT_PATH ${OTB_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
 ENDIF(NOT EXECUTABLE_OUTPUT_PATH)
diff --git a/OTBConfig.cmake.in b/OTBConfig.cmake.in
index b8fbc69a5a..f85fae72d2 100644
--- a/OTBConfig.cmake.in
+++ b/OTBConfig.cmake.in
@@ -5,6 +5,10 @@
 # This file is configured by OTB and used by the UseOTB.cmake module
 # to load OTB's settings for an external project.
 
+# This file is configured by OTB and used by the UseOTB.cmake module
+# to load OTB's settings for an external project.
+@OTB_CONFIG_CODE@
+
 
 # Option use external ITK.
 SET(OTB_USE_EXTERNAL_ITK "@OTB_USE_EXTERNAL_ITK@")
diff --git a/Utilities/FLTK/src/CMakeLists.txt b/Utilities/FLTK/src/CMakeLists.txt
index 9fc06d88dd..1797ce6341 100644
--- a/Utilities/FLTK/src/CMakeLists.txt
+++ b/Utilities/FLTK/src/CMakeLists.txt
@@ -183,9 +183,9 @@ ADD_LIBRARY(fltk ${CPPFILES} ${CFILES})
 # OTB Modifications
 #INSTALL_TARGETS(/lib fltk)
 INSTALL(TARGETS fltk
-        RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries
-        LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
-        ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT Development)
+    RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
+    LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
+    ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT Development)
 
 SET_TARGET_PROPERTIES(fltk
   PROPERTIES
@@ -203,9 +203,9 @@ IF(OPENGL_FOUND)
 # OTB Modifications
 #  INSTALL_TARGETS(/lib fltk_gl)
   INSTALL(TARGETS fltk_gl
-        RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries
-        LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
-        ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT Development)
+    RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
+    LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
+    ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT Development)
 
   TARGET_LINK_LIBRARIES(fltk_gl fltk ${OPENGL_LIBRARIES})
   SET_TARGET_PROPERTIES(fltk_gl
@@ -218,9 +218,9 @@ ADD_LIBRARY(fltk_forms ${FLCPPFILES})
 # OTB Modifications
 #INSTALL_TARGETS(/lib fltk_forms)
 INSTALL(TARGETS fltk_forms
-        RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries
-        LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
-        ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT Development)
+    RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
+    LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
+    ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT Development)
 TARGET_LINK_LIBRARIES(fltk_forms fltk)
 SET_TARGET_PROPERTIES(fltk_forms
   PROPERTIES
@@ -231,9 +231,9 @@ ADD_LIBRARY(fltk_images ${IMGCPPFILES})
 # OTB Modifications
 #INSTALL_TARGETS(/lib fltk_images)
 INSTALL(TARGETS fltk_images
-        RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries
-        LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
-        ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR} COMPONENT Development)
+    RUNTIME DESTINATION ${OTB_INSTALL_BIN_DIR_CM24} COMPONENT RuntimeLibraries
+    LIBRARY DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT RuntimeLibraries
+    ARCHIVE DESTINATION ${OTB_INSTALL_LIB_DIR_CM24} COMPONENT Development)
 TARGET_LINK_LIBRARIES(fltk_images fltk ${FLTK_PNG_LIBRARIES}
      ${FLTK_JPEG_LIBRARIES} ${FLTK_ZLIB_LIBRARIES})
 SET_TARGET_PROPERTIES(fltk_images
diff --git a/otbGenerateOTBConfig.cmake b/otbGenerateOTBConfig.cmake
index 82d2652c8f..9e3dc6e077 100644
--- a/otbGenerateOTBConfig.cmake
+++ b/otbGenerateOTBConfig.cmake
@@ -18,12 +18,17 @@ SET(OTB_BUILD_SETTINGS_FILE ${OTB_BINARY_DIR}/OTBBuildSettings.cmake)
 SET(OTB_LIBRARY_DIRS_CONFIG ${OTB_LIBRARY_PATH})
 
 
-SET(OTB_LIBRARY_DIRS_CONFIG ${OTB_LIBRARY_DIRS_CONFIG} ${GDAL_LIBRARY_DIRS} ${ITK_LIBRARY_DIRS} ${FLTK_LIBRARY_DIRS})
+
+#            SET(OTB_LIBRARY_DIRS_CONFIG ${OTB_LIBRARY_DIRS_CONFIG} ${GDAL_LIBRARY_DIRS} ${ITK_LIBRARY_DIRS} ${FLTK_LIBRARY_DIRS})
+
+
+
+
 
 # Determine the include directories needed.
 SET(OTB_INCLUDE_DIRS_CONFIG
   ${OTB_INCLUDE_DIRS_BUILD_TREE}
-  ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX}
+#  ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX}
   ${OTB_INCLUDE_DIRS_SYSTEM} 
 )
 
@@ -57,14 +62,27 @@ SET(OTB_BUILD_SETTINGS_FILE \${OTB_INSTALL_PREFIX}${OTB_INSTALL_PACKAGE_DIR}/OTB
 
 
 # Include directories.
-SET(OTB_INCLUDE_DIRS_CONFIG 
-  ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-  ${OTB_INCLUDE_DIRS_SYSTEM}
-)
+SET(OTB_INCLUDE_DIRS_CONFIG \${OTB_INSTALL_PREFIX}${OTB_INSTALL_INCLUDE_DIR})
+FOREACH(DIR ${OTB_INCLUDE_RELATIVE_DIRS})
+  LIST(APPEND OTB_INCLUDE_DIRS_CONFIG \${OTB_INSTALL_PREFIX}${OTB_INSTALL_INCLUDE_DIR}/${DIR})
+ENDFOREACH(DIR)
+IF(OTB_INCLUDE_DIRS_SYSTEM)
+  LIST(APPEND OTB_INCLUDE_DIRS_CONFIG ${OTB_INCLUDE_DIRS_SYSTEM})
+ENDIF(OTB_INCLUDE_DIRS_SYSTEM)
+
+# Include directories.
+#       SET(OTB_INCLUDE_DIRS_CONFIG 
+#         ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+#         ${OTB_INCLUDE_DIRS_SYSTEM}
+#       )
 
 # Link directories.
 SET(OTB_LIBRARY_DIRS_CONFIG "\${OTB_INSTALL_PREFIX}${OTB_INSTALL_LIB_DIR}")
-SET(OTB_LIBRARY_DIRS_CONFIG ${OTB_LIBRARY_DIRS_CONFIG} ${GDAL_LIBRARY_DIRS} ${ITK_LIBRARY_DIRS} ${FLTK_LIBRARY_DIRS})
+
+
+#            SET(OTB_LIBRARY_DIRS_CONFIG ${OTB_LIBRARY_DIRS_CONFIG} ${GDAL_LIBRARY_DIRS} ${ITK_LIBRARY_DIRS} ${FLTK_LIBRARY_DIRS})
+
+
 
 # Install Configure FLTK commands and directories
 IF(OTB_USE_EXTERNAL_FLTK)
@@ -73,15 +91,37 @@ IF(OTB_USE_EXTERNAL_FLTK)
         SET(OTB_FLTK_LIBRARY_DIRS ${FLTK_LIBRARY_DIRS})
         SET(OTB_FLTK_EXECUTABLE_DIRS ${FLTK_EXECUTABLE_DIRS})
 ELSE(OTB_USE_EXTERNAL_FLTK)
+        SET(OTB_BINARY_DIRS_CONFIG "\${OTB_INSTALL_PREFIX}${OTB_INSTALL_BIN_DIR}")
         GET_FILENAME_COMPONENT(FLUID_FILE_NAME "${FLUID_COMMAND}" NAME )
-        SET(OTB_FLUID_COMMAND ${CMAKE_INSTALL_PREFIX}/bin/${FLUID_FILE_NAME})
+
+        SET(OTB_FLUID_COMMAND ${OTB_BINARY_DIRS_CONFIG}/${FLUID_FILE_NAME})
         SET(OTB_FLTK_FLUID_EXECUTABLE ${OTB_FLUID_COMMAND})
-        SET(OTB_FLTK_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/lib)
-        SET(OTB_FLTK_EXECUTABLE_DIRS ${CMAKE_INSTALL_PREFIX}/bin)
+        SET(OTB_FLTK_LIBRARY_DIRS ${OTB_LIBRARY_DIRS_CONFIG})
+        SET(OTB_FLTK_EXECUTABLE_DIRS ${OTB_BINARY_DIRS_CONFIG})
+
+#        GET_FILENAME_COMPONENT(FLUID_FILE_NAME "${FLUID_COMMAND}" NAME )
+#        SET(OTB_FLUID_COMMAND ${CMAKE_INSTALL_PREFIX}/bin/${FLUID_FILE_NAME})
+#        SET(OTB_FLTK_FLUID_EXECUTABLE ${OTB_FLUID_COMMAND})
+#        SET(OTB_FLTK_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/lib)
+#        SET(OTB_FLTK_EXECUTABLE_DIRS ${CMAKE_INSTALL_PREFIX}/bin)
 ENDIF(OTB_USE_EXTERNAL_FLTK)
 
 
 #-----------------------------------------------------------------------------
 # Configure OTBConfig.cmake for the INSTALL tree.
+
+# Construct the proper number of GET_FILENAME_COMPONENT(... PATH)
+# calls to compute the installation prefix.
+STRING(REGEX REPLACE "/" ";" OTB_INSTALL_PACKAGE_DIR_COUNT
+  "${OTB_INSTALL_PACKAGE_DIR}")
+SET(OTB_CONFIG_CODE "
+# Compute the installation prefix from this ITKConfig.cmake file location.
+GET_FILENAME_COMPONENT(OTB_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
+FOREACH(p ${OTB_INSTALL_PACKAGE_DIR_COUNT})
+  SET(OTB_CONFIG_CODE
+    "${OTB_CONFIG_CODE}\nGET_FILENAME_COMPONENT(OTB_INSTALL_PREFIX \"\${OTB_INSTALL_PREFIX}\" PATH)"
+    )
+ENDFOREACH(p)
+
 CONFIGURE_FILE(${OTB_SOURCE_DIR}/OTBConfig.cmake.in
                ${OTB_BINARY_DIR}/Utilities/OTBConfig.cmake @ONLY IMMEDIATE)
diff --git a/otbIncludeDirectories.cmake b/otbIncludeDirectories.cmake
index 5685492706..2219ec2fbd 100644
--- a/otbIncludeDirectories.cmake
+++ b/otbIncludeDirectories.cmake
@@ -134,10 +134,12 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE_CXX ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX} )
 #ENDIF(NOT OTB_USE_EXTERNAL_FLTK)
 
 
+
+
+
 #-----------------------------------------------------------------------------
 # Include directories from libraries build tree.
 
-
 #For FLTK header file
 IF(OTB_USE_EXTERNAL_FLTK)
         SET(OTB_INCLUDE_DIRS_BUILD_TREE_CXX ${OTB_INCLUDE_DIRS_BUILD_TREE_CXX}
@@ -184,132 +186,147 @@ ELSE(OTB_USE_EXTERNAL_ITK)
    			${ITK_INCLUDE_DIRS_BUILD_TREE_CXX} 	)
 ENDIF(OTB_USE_EXTERNAL_ITK)
 
+
+
+
+
+
+
 #-----------------------------------------------------------------------------
 # Include directories from the install tree.
-SET(OTB_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib/otb")
-SET(OTB_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
-SET(OTB_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/otb")
+SET(OTB_INSTALL_INCLUDE_PATH "${CMAKE_INSTALL_PREFIX}${OTB_INSTALL_INCLUDE_DIR}")
+#           SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS} )
+
+#           SET(OTB_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib/otb")
+#           SET(OTB_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin")
+#           SET(OTB_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/otb")
 
 
 #For BOOST header file
 IF(OTB_USE_EXTERNAL_BOOST)
-  SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+  SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   	${Boost_INCLUDE_DIR} )
 ELSE(OTB_USE_EXTERNAL_BOOST)
-  SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-        ${OTB_INSTALL_INCLUDE_DIR}/Utilities/BGL
-        ${OTB_INSTALL_INCLUDE_DIR}/Utilities/BGL/boost)
+  SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+        Utilities/BGL
+        Utilities/BGL/boost)
 ENDIF(OTB_USE_EXTERNAL_BOOST)
 
 
-SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-  ${OTB_INSTALL_INCLUDE_DIR}
-  ${OTB_INSTALL_INCLUDE_DIR}/Common
-  ${OTB_INSTALL_INCLUDE_DIR}/BasicFilters
-  ${OTB_INSTALL_INCLUDE_DIR}/IO
-  ${OTB_INSTALL_INCLUDE_DIR}/ChangeDetection
-  ${OTB_INSTALL_INCLUDE_DIR}/FeatureExtraction
-  ${OTB_INSTALL_INCLUDE_DIR}/Learning
-  ${OTB_INSTALL_INCLUDE_DIR}/MultiScale
-  ${OTB_INSTALL_INCLUDE_DIR}/SpatialReasoning
-  ${OTB_INSTALL_INCLUDE_DIR}/DisparityMap
-  ${OTB_INSTALL_INCLUDE_DIR}/Visu
-  ${OTB_INSTALL_INCLUDE_DIR}/Visualization
-  ${OTB_INSTALL_INCLUDE_DIR}/Gui
-  ${OTB_INSTALL_INCLUDE_DIR}/Projections
-  ${OTB_INSTALL_INCLUDE_DIR}/Radiometry
-  ${OTB_INSTALL_INCLUDE_DIR}/SARPolarimetry
-  ${OTB_INSTALL_INCLUDE_DIR}/Markov
-  ${OTB_INSTALL_INCLUDE_DIR}/Fusion
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/ITK
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbsvm
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbossim
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbossim/include
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbossim/include/ossim
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbossimplugins
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/InsightJournal
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otb6S
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/tinyXMLlib
-#  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbgalib
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/src
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party/boost_1_34_1
-# ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3
-# ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbkml/third_party/zlib-1.2.3/contrib
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbliblas/include
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbedison
-  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbsiftfast
+SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+  Common
+  BasicFilters
+  IO
+  ChangeDetection
+  FeatureExtraction
+  Learning
+  MultiScale
+  SpatialReasoning
+  DisparityMap
+  Visu
+  Visualization
+  Gui
+  Projections
+  Radiometry
+  SARPolarimetry
+  Markov
+  Fusion
+  Utilities
+  Utilities/ITK
+  Utilities/otbsvm
+  Utilities/otbossim
+  Utilities/otbossim/include
+  Utilities/otbossim/include/ossim
+  Utilities/otbossimplugins
+  Utilities/InsightJournal
+  Utilities/otb6S
+  Utilities/tinyXMLlib
+#  Utilities/otbgalib
+  Utilities/otbkml
+  Utilities/otbkml/src
+  Utilities/otbkml/third_party
+  Utilities/otbkml/third_party/boost_1_34_1
+# Utilities/otbkml/third_party/zlib-1.2.3
+# Utilities/otbkml/third_party/zlib-1.2.3/contrib
+  Utilities/otbliblas/include
+  Utilities/otbedison
+  Utilities/otbsiftfast
 )
 
 IF(OTB_COMPILE_JPEG2000)
-  SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-        ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenjpeg
-        ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenjpeg/libopenjpeg)
+  SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+        Utilities/otbopenjpeg
+        Utilities/otbopenjpeg/libopenjpeg)
 ENDIF(OTB_COMPILE_JPEG2000)
 
 #For GDAL header file
-SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   		${GDAL_INCLUDE_DIRS} )
 
 #For EXPAT header file
 IF(OTB_USE_EXTERNAL_EXPAT)
-        SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+        SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   	        ${EXPAT_INCLUDE_DIR} )
 ELSE(OTB_USE_EXTERNAL_EXPAT)
-        SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-                ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbexpat)
+        SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+                Utilities/otbexpat)
 ENDIF(OTB_USE_EXTERNAL_EXPAT)
 
 #For CURL header file
 IF(OTB_USE_CURL)
-  SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+  SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   	${CURL_INCLUDE_DIR} )
 ENDIF(OTB_USE_CURL)
 
 # For OpentTreads  header file
 IF(NOT OTB_USE_EXTERNAL_OPENTHREADS)
-        SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-                ${OTB_INSTALL_INCLUDE_DIR}/Utilities/otbopenthreads/OpenThreads/include)
+        SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+                Utilities/otbopenthreads/OpenThreads/include)
 ENDIF(NOT OTB_USE_EXTERNAL_OPENTHREADS)
 
 #For FLTK header file
 IF(OTB_USE_EXTERNAL_FLTK)
-        SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+        SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   		        ${FLTK_INCLUDE_DIRS})
 ELSE(OTB_USE_EXTERNAL_FLTK)
-        SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-  		        ${OTB_INSTALL_INCLUDE_DIR}/Utilities/FLTK)
+        SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+  		        Utilities/FLTK)
 ENDIF(OTB_USE_EXTERNAL_FLTK)
 
 #For GLU header file
-SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   		${OTB_GLU_INCLUDE_PATH} )
 
 #For ITK header file
 IF(OTB_USE_EXTERNAL_ITK)
-	SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
+	SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
    			${ITK_INCLUDE_DIRS} )
 #   			${ITK_INCLUDE_DIRS_INSTALL_TREE} 	)
 ELSE(OTB_USE_EXTERNAL_ITK)
 
+    #Add prefix path "Utilities/ITK" For ITK_INCLUDE_RELATIVE_DIRS paths
+    FOREACH(DIR ${ITK_INCLUDE_RELATIVE_DIRS})
+        LIST(APPEND OTB_INCLUDE_RELATIVE_DIRS Utilities/ITK/${DIR})
+    ENDFOREACH(DIR)
+
+
 # JULIEN Seems that ITK_INCLUDE_DIRS_CONFIG replaces ITK_INCLUDE_DIRS_INSTALL_TREE
-SET(ITK_INCLUDE_DIRS  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/ITK/)
-FOREACH(DIR ${ITK_INCLUDE_RELATIVE_DIRS})
-  LIST(APPEND ITK_INCLUDE_DIRS ${OTB_INSTALL_INCLUDE_DIR}/Utilities/ITK/${DIR})
-ENDFOREACH(DIR)
-IF(ITK_INCLUDE_DIRS_SYSTEM)
-  LIST(APPEND ITK_INCLUDE_DIR ${ITK_INCLUDE_DIRS_SYSTEM})
-ENDIF(ITK_INCLUDE_DIRS_SYSTEM)
+#             SET(ITK_INCLUDE_DIRS  ${OTB_INSTALL_INCLUDE_DIR}/Utilities/ITK/)
+#             FOREACH(DIR ${ITK_INCLUDE_RELATIVE_DIRS})
+#               LIST(APPEND ITK_INCLUDE_DIRS ${OTB_INSTALL_INCLUDE_DIR}/Utilities/ITK/${DIR})
+#             ENDFOREACH(DIR)
+#             IF(ITK_INCLUDE_DIRS_SYSTEM)
+#               LIST(APPEND ITK_INCLUDE_DIR ${ITK_INCLUDE_DIRS_SYSTEM})
+#             ENDIF(ITK_INCLUDE_DIRS_SYSTEM)
 
 
 #THOMAS
-	SET(OTB_INCLUDE_DIRS_INSTALL_TREE ${OTB_INCLUDE_DIRS_INSTALL_TREE}
-			${ITK_INCLUDE_DIRS_INSTALL_TREE}
+#                SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
+#           			${ITK_INCLUDE_DIRS_INSTALL_TREE}
 #JULIEN
-			${ITK_INCLUDE_DIRS}
-			 )
+#           			${ITK_INCLUDE_DIRS}
+#           )
 #			${ITK_INCLUDE_DIRS_BUILD_TREE}
 #			${ITK_INCLUDE_DIRS_BUILD_TREE_CXX} )
+
 ENDIF(OTB_USE_EXTERNAL_ITK)
-- 
GitLab