From 945c7b5d51f8eb16f2387be6558b3eef79ee9197 Mon Sep 17 00:00:00 2001
From: Rashad Kanavath <rashad.kanavath@c-s.fr>
Date: Thu, 19 Jan 2017 17:03:18 +0100
Subject: [PATCH] XDK: fix nasty cmake files portablity suff..ergh

---
 SuperBuild/CMake/External_itk.cmake           |  8 ----
 SuperBuild/CMake/post_install.cmake           |  8 ++++
 .../Packaging/CreateCMakeProjects.cmake       |  1 +
 .../Packaging/InstallSupportFiles.cmake       | 45 +++++++++++++++++--
 4 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/SuperBuild/CMake/External_itk.cmake b/SuperBuild/CMake/External_itk.cmake
index 8f0c9e404a..92e674a38f 100644
--- a/SuperBuild/CMake/External_itk.cmake
+++ b/SuperBuild/CMake/External_itk.cmake
@@ -164,11 +164,3 @@ ExternalProject_Add(ITK
 
 SUPERBUILD_PATCH_SOURCE(ITK)
 
-set(DIR_LIST  "${SB_INSTALL_PREFIX}/lib/cmake/ITK-4.10|${SB_INSTALL_PREFIX}/lib/cmake/ITK-4.10/Modules")
-ExternalProject_Add_Step(ITK POST_INSTALL
-  COMMAND ${CMAKE_COMMAND}
-  -DP_DIRS=${DIR_LIST}
-  -DP_MATCH=${SB_INSTALL_PREFIX}
-  -DP_REPLACE=ITK_INSTALL_PREFIX
-  -P ${CMAKE_SOURCE_DIR}/CMake/post_install.cmake
-  DEPENDEES install)
diff --git a/SuperBuild/CMake/post_install.cmake b/SuperBuild/CMake/post_install.cmake
index 75572f4f74..603c8c24e5 100644
--- a/SuperBuild/CMake/post_install.cmake
+++ b/SuperBuild/CMake/post_install.cmake
@@ -1,5 +1,13 @@
+#check variables are set
+foreach(var P_DIRS P_MATCH P_REPLACE)
+  if(NOT ${var})
+    message(FATAL_ERROR "${var} not set")
+  endif()
+endforeach()
+
 string(REPLACE "|" ";" P_DIRS ${P_DIRS})
 
+
 foreach( p_dir ${P_DIRS} )
 set(file_list)
 file( GLOB file_list "${p_dir}/*.cmake" )
diff --git a/SuperBuild/Packaging/CreateCMakeProjects.cmake b/SuperBuild/Packaging/CreateCMakeProjects.cmake
index ba87042ef9..6964951344 100644
--- a/SuperBuild/Packaging/CreateCMakeProjects.cmake
+++ b/SuperBuild/Packaging/CreateCMakeProjects.cmake
@@ -30,6 +30,7 @@ macro(macro_setup_cmake_project pkg)
    include(CMakeDetermineSystem)
    set(CMAKE_BUILD_TYPE              Release)
    set(PACKAGE_OTB_SRC_DIR           \"${PACKAGE_OTB_SRC_DIR}\")
+   set(SUPERBUILD_BINARY_DIR         \"${SUPERBUILD_BINARY_DIR}\")
    set(OTB_BINARY_DIR                \"${OTB_BINARY_DIR}\")
    set(OTB_INSTALL_DIR               \"${OTB_INSTALL_DIR}\")
    set(QT_PLUGINS_DIR                \"${QT_PLUGINS_DIR}\")
diff --git a/SuperBuild/Packaging/InstallSupportFiles.cmake b/SuperBuild/Packaging/InstallSupportFiles.cmake
index 860c46da10..cd3b76d5b5 100644
--- a/SuperBuild/Packaging/InstallSupportFiles.cmake
+++ b/SuperBuild/Packaging/InstallSupportFiles.cmake
@@ -47,10 +47,47 @@ function(func_install_xdk_files)
     endif()
   endforeach()
 
-  file(GLOB ITK_CMAKE_DIRS "${DEPENDENCIES_INSTALL_DIR}/lib/cmake/ITK*")
-  foreach(ITK_CMAKE_DIR ${ITK_CMAKE_DIRS})
-      func_install_without_message("${ITK_CMAKE_DIR}" "lib/cmake")
-  endforeach()
+  set(ITK_CMAKE_DIR "${DEPENDENCIES_INSTALL_DIR}/lib/cmake/ITK-${PKG_ITK_SB_VERSION}")
+  message("COPY ${DEPENDENCIES_INSTALL_DIR}/lib/cmake/ITK-${PKG_ITK_SB_VERSION} to ${CMAKE_CURRENT_BINARY_DIR}/_tmp/ to patch")
+  execute_process(
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/_tmp/
+    COMMAND ${CMAKE_COMMAND}
+    -E copy_directory
+    ${ITK_CMAKE_DIR}
+    ${CMAKE_CURRENT_BINARY_DIR}/_tmp/ITK-${PKG_ITK_SB_VERSION}
+    )
+
+  #reset ITK_CMAKE_DIR
+  set(ITK_CMAKE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_tmp/ITK-${PKG_ITK_SB_VERSION}")
+
+  set(DIR_LIST "${CMAKE_CURRENT_BINARY_DIR}/_tmp/ITK-${PKG_ITK_SB_VERSION}|${CMAKE_CURRENT_BINARY_DIR}/_tmp/ITK-${PKG_ITK_SB_VERSION}/Modules")
+
+  #SUPERBUILD_INSTALL_DIR
+  execute_process(
+    COMMAND ${CMAKE_COMMAND}
+    -DP_DIRS=${DIR_LIST}
+    -DP_MATCH=${CMAKE_INSTALL_PREFIX}
+    -DP_REPLACE=ITK_INSTALL_PREFIX
+    -P ${PACKAGE_OTB_SRC_DIR}/SuperBuild/CMake/post_install.cmake
+    RESULT_VARIABLE patch_itk_cmake_rv
+    )
+
+  file(STRINGS  "${SUPERBUILD_BINARY_DIR}/ITK/build/CMakeCache.txt"
+    MATCH_FOUND REGEX "ITK_USE_SYSTEM_ZLIB:BOOL=ON")
+  if(MATCH_FOUND)
+    find_package(ZLIB QUIET)
+    get_filename_component(ZLIB_PREFIX ${ZLIB_LIBRARY} PATH)
+    execute_process(
+      COMMAND ${CMAKE_COMMAND}
+      -DP_DIRS=${DIR_LIST}
+      -DP_MATCH=${ZLIB_PREFIX}
+      -DP_REPLACE=ITK_INSTALL_PREFIX
+      -P ${PACKAGE_OTB_SRC_DIR}/SuperBuild/CMake/post_install.cmake
+      )
+
+  endif()
+
+  func_install_without_message("${ITK_CMAKE_DIR}" "lib/cmake")
 
   set(QT_REQ_DIRS)
   if(WIN32)
-- 
GitLab