From d4d3f745948d56f3d446669cf5f317e19ede6dba Mon Sep 17 00:00:00 2001
From: Julien Malik <julien.malik@gmail.com>
Date: Thu, 28 Apr 2016 16:58:35 +0200
Subject: [PATCH] PKG: rerun make in binary directory to ensure build is okay

---
 SuperBuild/CMake/External_pkgtools.cmake |  2 +-
 SuperBuild/Packaging/PMacros.cmake       | 35 ++++++++++++++----------
 2 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/SuperBuild/CMake/External_pkgtools.cmake b/SuperBuild/CMake/External_pkgtools.cmake
index 0afee5943a..0fb21692a0 100644
--- a/SuperBuild/CMake/External_pkgtools.cmake
+++ b/SuperBuild/CMake/External_pkgtools.cmake
@@ -7,7 +7,7 @@ include(ExternalProject)
 if(NOT __EXTERNAL_PACKAGE_TOOLS__)
 set(__EXTERNAL_PACKAGE_TOOLS__ 1)
 
-set(PKGTOOLS_SB_PREFIX_DIR "${CMAKE_BINARY_DIR}/TOOLS-PACKAGE")
+set(PKGTOOLS_SB_PREFIX_DIR "${CMAKE_BINARY_DIR}/PACKAGE-TOOLS")
 
 if(UNIX)
   if(APPLE)
diff --git a/SuperBuild/Packaging/PMacros.cmake b/SuperBuild/Packaging/PMacros.cmake
index 7285c0e23b..897ecfd664 100644
--- a/SuperBuild/Packaging/PMacros.cmake
+++ b/SuperBuild/Packaging/PMacros.cmake
@@ -39,25 +39,29 @@ macro(macro_setup_cmake_sources pkg)
 endmacro()
 
 macro(macro_update_dependencies_list list_variable)
+  add_custom_target(REMAKE
+    COMMAND ${CMAKE_COMMAND} --build "${SUPERBUILD_BINARY_DIR}"
+    WORKING_DIRECTORY "${SUPERBUILD_BINARY_DIR}"
+    )
   if(WIN32 OR CMAKE_CROSSCOMPILING)
     add_custom_target(PACKAGE-check)
   else() #Unxies Using SuperBuild
-    if(OUT_OF_SOURCE_BUILD)
-      if(ENABLE_MONTEVERDI)
-        add_custom_target(PACKAGE-check
-          COMMAND ${CMAKE_COMMAND} --build "${SUPERBUILD_BINARY_DIR}/MVD/build"
-          WORKING_DIRECTORY "${SUPERBUILD_BINARY_DIR}/MVD/build"
-          )
-      else()
-        add_custom_target(PACKAGE-check
-          COMMAND ${CMAKE_COMMAND} --build "${SUPERBUILD_BINARY_DIR}/OTB/build"
-          WORKING_DIRECTORY "${SUPERBUILD_BINARY_DIR}/OTB/build"
-          )
-      endif(ENABLE_MONTEVERDI)
-    else(OUT_OF_SOURCE_BUILD)
-      add_custom_target(PACKAGE-check)
-    endif(OUT_OF_SOURCE_BUILD)
+
+    if(ENABLE_MONTEVERDI)
+      add_custom_target(PACKAGE-check
+        COMMAND ${CMAKE_COMMAND} --build "${SUPERBUILD_BINARY_DIR}/MVD/build"
+        WORKING_DIRECTORY "${SUPERBUILD_BINARY_DIR}/MVD/build"
+        DEPENDS REMAKE
+        )
+    else()
+      add_custom_target(PACKAGE-check
+        COMMAND ${CMAKE_COMMAND} --build "${SUPERBUILD_BINARY_DIR}/OTB/build"
+        WORKING_DIRECTORY "${SUPERBUILD_BINARY_DIR}/OTB/build"
+        DEPENDS REMAKE
+        )
+    endif(ENABLE_MONTEVERDI)
   endif()
+
   list(APPEND ${list_variable} PACKAGE-check)
 endmacro()
 
@@ -82,6 +86,7 @@ macro(macro_create_targets_for_package pkg)
   # creation of package is different from windows and unix like
   if(WIN32 OR CMAKE_CROSSCOMPILING)
     add_custom_target(PACKAGE-${pkg}
+      ALL DEPENDS
       COMMAND ${ZIP_EXECUTABLE}
       "-r" "${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.zip" "${CMAKE_INSTALL_PREFIX}/${ARCHIVE_NAME}"
       WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
-- 
GitLab