From f1dfb6a1bcc85b7b0d4b1ffe291ee87c1cbf25af Mon Sep 17 00:00:00 2001
From: Rashad Kanavath <rashad.kanavath@c-s.fr>
Date: Fri, 3 Jul 2015 13:22:14 +0200
Subject: [PATCH] portable binaries fix patchelf path

---
 SuperBuild/CMake/External_package.cmake |  7 -----
 SuperBuild/CMake/Package_Macro.cmake    | 18 ++++++-------
 SuperBuild/CMakeLists.txt               | 34 ++++++++++++-------------
 3 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/SuperBuild/CMake/External_package.cmake b/SuperBuild/CMake/External_package.cmake
index 1bc0f65597..2960e84aae 100644
--- a/SuperBuild/CMake/External_package.cmake
+++ b/SuperBuild/CMake/External_package.cmake
@@ -13,9 +13,6 @@ execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/
 #set(${proj}_DEPENDENCIES OTB)
 #INCLUDE_SUPERBUILD_DEPENDENCIES(${${proj}_DEPENDENCIES})
 
-#message(FATAL_ERROR "PACKAGE_SB_BUILD_DIR=${PACKAGE_SB_BUILD_DIR}")
-
-
 ExternalProject_Add(${proj}
   PREFIX ${proj}
   SOURCE_DIR ${PACKAGE-OTB_SB_SRC_DIR}
@@ -28,9 +25,5 @@ ExternalProject_Add(${proj}
   CMAKE_COMMAND ${SB_CMAKE_COMMAND}
   DEPENDS OTB)
 
-# ExternalProject_Add_Step(${proj} set_rpath
-#   COMMAND ${PATCHELF_PROGRAM} "--set-rpath" "../lib" ""
-#   DEPENDEES install)
-
 
 endif()
diff --git a/SuperBuild/CMake/Package_Macro.cmake b/SuperBuild/CMake/Package_Macro.cmake
index 2ec53d58b4..2b50d2f4f8 100644
--- a/SuperBuild/CMake/Package_Macro.cmake
+++ b/SuperBuild/CMake/Package_Macro.cmake
@@ -2,7 +2,7 @@ macro(superbuild_package)
   cmake_parse_arguments(PACKAGE  "" "OUTDIR;INSTALLDIR" "SEARCHDIRS;PEFILES" ${ARGN} )
 
   find_program(OBJDUMP_PROGRAM "objdump")
-  set(PATCHELF_PROGRAM "/home/mrashad/build/patchelf-0.8/src/patchelf")
+  set(PATCHELF_PROGRAM "/home/mrashad/Tools/patchelf-0.8/src/patchelf")
 
   list(APPEND PACKAGE_SEARCHDIRS "${PACKAGE_INSTALLDIR}/bin") #exe
   list(APPEND PACKAGE_SEARCHDIRS "${PACKAGE_INSTALLDIR}/lib") #so
@@ -25,8 +25,7 @@ macro(superbuild_package)
   list(LENGTH notfound_dlls nos)
   if(${nos} GREATER 0)
     STRING(REPLACE ".so;" ".so," notfound ${notfound_dlls})
-     message(FATAL_ERROR "Following dlls were not found: ${notfound_dlls}
-Please consider adding their paths to SEARCHDIRS when calling superbuild_package macro.")
+    message(FATAL_ERROR "Following dlls were not found: ${notfound_dlls}. Please consider adding their paths to SEARCHDIRS when calling superbuild_package macro.")
   endif()
 
 endmacro(superbuild_package)
@@ -80,10 +79,10 @@ function(process_deps infile)
           #     DESTINATION ${PACKAGE_OUTDIR}/lib)
 
 
-            add_custom_target(RPATH_${bn}
-               INSTALL
-               POST_BUILD
-               COMMAND ${PATCHELF_PROGRAM} "--set-rpath" "../lib" "${PACKAGE_OUTDIR}/lib/${infile}")
+          # add_custom_target(RPATH_${bn}
+          #   INSTALL
+          #     POST_BUILD
+          #     COMMAND ${PATCHELF_PROGRAM} "--set-rpath" "../lib" "${PACKAGE_INSTALLDIR}/${PACKAGE_OUTDIR}/bin/${infile}")
 
           #else() #we assume it is executable
             # install(FILES "${SEARCHDIR}/${infile}"
@@ -91,8 +90,9 @@ function(process_deps infile)
 
             file(GLOB sofiles "${SEARCHDIR}/${bn}*")
             foreach(sofile ${sofiles})
-            install(FILES "${sofile}"
-              DESTINATION ${PACKAGE_OUTDIR}/bin)
+            install(TARGETS "${sofile}"
+              DESTINATION ${PACKAGE_OUTDIR}/bin
+              PERMISSIONS )
             endforeach()
           #endif()
 
diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt
index 1a8ad75234..1f708b93cf 100644
--- a/SuperBuild/CMakeLists.txt
+++ b/SuperBuild/CMakeLists.txt
@@ -160,22 +160,22 @@ include(External_otb)
 #check compiler is gnu?
 if(UNIX AND NOT APPLE)
 
-  include(External_package)
-  set(ARCHIVE_NAME OTB-5.0.0-Linux64)
-
-  file(GLOB PEFILES
-    ${CMAKE_INSTALL_PREFIX}/bin/otbApplicationLaunch*
-    ${CMAKE_INSTALL_PREFIX}/bin/otbTestDriver )
-
-  file(WRITE "${CMAKE_BINARY_DIR}/PACKAGE-OTB/src/PACKAGE-OTB/CMakeLists.txt"
-    "cmake_minimum_required(VERSION 2.6)
-       include(CMakeParseArguments)
-       set(CMAKE_INSTALL_PREFIX \"${SB_INSTALL_PREFIX}\")
-       include(${CMAKE_SOURCE_DIR}/CMake/Package_Macro.cmake)
-       superbuild_package(
-       OUTDIR \"${ARCHIVE_NAME}\"
-       INSTALLDIR \"${SB_INSTALL_PREFIX}\"
-       PEFILES \"${PEFILES}\"
-       SEARCHDIRS \"\")")
+  # include(External_package)
+  # set(ARCHIVE_NAME OTB-5.0.0-Linux64)
+
+  # file(GLOB PEFILES
+  #   ${CMAKE_INSTALL_PREFIX}/bin/otbApplicationLaunch*
+  #   ${CMAKE_INSTALL_PREFIX}/bin/otbTestDriver )
+
+  # file(WRITE "${CMAKE_BINARY_DIR}/PACKAGE-OTB/src/PACKAGE-OTB/CMakeLists.txt"
+  #   "cmake_minimum_required(VERSION 2.6)
+  #      include(CMakeParseArguments)
+  #      set(CMAKE_INSTALL_PREFIX \"${SB_INSTALL_PREFIX}\")
+  #      include(${CMAKE_SOURCE_DIR}/CMake/Package_Macro.cmake)
+  #      superbuild_package(
+  #      OUTDIR \"${ARCHIVE_NAME}\"
+  #      INSTALLDIR \"${SB_INSTALL_PREFIX}\"
+  #      PEFILES \"${PEFILES}\"
+  #      SEARCHDIRS \"\")")
 
 endif(UNIX AND NOT APPLE)
-- 
GitLab