From da285a136215cf20a431f6227020d169d656ef06 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Wed, 11 Feb 2015 18:04:35 +0100
Subject: [PATCH] ENH: refactor: use macros for SB variables

---
 CMake/External_GDAL.cmake        |  5 +----
 CMake/External_ITK.cmake         | 15 ++++++---------
 CMake/External_OpenCV.cmake      |  4 +---
 CMake/External_OpenJpeg.cmake    |  9 +++------
 CMake/External_OpenThreads.cmake |  4 +---
 CMake/External_SQLite.cmake      |  6 ++----
 CMake/External_TinyXML.cmake     |  6 ++----
 CMake/External_curl.cmake        |  4 +---
 CMake/External_expat.cmake       |  6 ++----
 CMake/External_fftw.cmake        |  4 ++--
 CMake/External_geos.cmake        |  4 +---
 CMake/External_geotiff.cmake     |  5 +----
 CMake/External_jpeg.cmake        |  4 +---
 CMake/External_libKML.cmake      |  4 +---
 CMake/External_libpng.cmake      |  4 +---
 CMake/External_muParser.cmake    |  4 +---
 CMake/External_muParserX.cmake   |  4 +---
 CMake/External_ossim.cmake       |  5 +----
 CMake/External_pcre.cmake        |  4 +---
 CMake/External_proj4.cmake       |  4 +---
 CMake/External_qt4.cmake         |  6 ++----
 CMake/External_swig.cmake        | 11 ++++-------
 CMake/External_zlib.cmake        |  4 +---
 23 files changed, 38 insertions(+), 88 deletions(-)

diff --git a/CMake/External_GDAL.cmake b/CMake/External_GDAL.cmake
index 9530a7439f..5aa964a04f 100644
--- a/CMake/External_GDAL.cmake
+++ b/CMake/External_GDAL.cmake
@@ -10,10 +10,7 @@ mark_as_advanced(USE_SYSTEM_GDAL)
 if(USE_SYSTEM_GDAL)
   message(STATUS "  Using GDAL system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(GDAL_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(GDAL_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(GDAL_SB_CONFIG)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(USE_SYSTEM_TIFF)
     if(NOT SYSTEM_TIFF_PREFIX STREQUAL "")
diff --git a/CMake/External_ITK.cmake b/CMake/External_ITK.cmake
index 44db3b8bc6..073950ac96 100644
--- a/CMake/External_ITK.cmake
+++ b/CMake/External_ITK.cmake
@@ -11,14 +11,11 @@ mark_as_advanced(USE_SYSTEM_ITK)
 if(USE_SYSTEM_ITK)
   message(STATUS "  Using ITK system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(ITK_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(ITK_SB_SRC_DIR ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(ITK_SB_CONFIG)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # if(MSVC)
-    # set(ITK_SB_SRC_DIR "C:/Temp/ITK")
-    # set(ITK_SB_BUILD_DIR ${ITK_SB_SRC_DIR}/build)
+    # set(ITK_SB_SRC "C:/Temp/ITK")
+    # set(ITK_SB_BUILD_DIR ${ITK_SB_SRC}/build)
   # endif()
   
   set(ITK_ENABLED_MODULES
@@ -165,7 +162,7 @@ else()
     PREFIX ${proj}
     URL "http://sourceforge.net/projects/itk/files/itk/4.6/InsightToolkit-4.6.1.tar.gz/download"
     URL_MD5 2c84eae50ab2452cdad32aaadced3c37
-    SOURCE_DIR ${ITK_SB_SRC_DIR}
+    SOURCE_DIR ${ITK_SB_SRC}
     BINARY_DIR ${ITK_SB_BUILD_DIR}
     INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
     CMAKE_CACHE_ARGS
@@ -186,14 +183,14 @@ else()
       ${ITK_SB_CONFIG}
     PATCH_COMMAND ${CMAKE_COMMAND} -E copy 
       ${CMAKE_SOURCE_DIR}/patches/ITK/hashtable.hxx.in
-      ${ITK_SB_SRC_DIR}/Modules/ThirdParty/KWSys/src/KWSys
+      ${ITK_SB_SRC}/Modules/ThirdParty/KWSys/src/KWSys
     DEPENDS ${${proj}_DEPENDENCIES}
     )
   
   # write patch in binary dir
   #file(WRITE ${CMAKE_BINARY_DIR}/itk_patch_1.cmake 
   #  "configure_file(${CMAKE_SOURCE_DIR}/patches_ITK/hashtable.hxx.in 
-  #   ${ITK_SB_SRC_DIR}/Modules/ThirdParty/KWSys/src/KWSys/hashtable.hxx.in COPYONLY)")
+  #   ${ITK_SB_SRC}/Modules/ThirdParty/KWSys/src/KWSys/hashtable.hxx.in COPYONLY)")
   
   message(STATUS "  Using ITK SuperBuild version")
 endif()
diff --git a/CMake/External_OpenCV.cmake b/CMake/External_OpenCV.cmake
index 5fad02a21b..085e606652 100644
--- a/CMake/External_OpenCV.cmake
+++ b/CMake/External_OpenCV.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_OPENCV)
 if(USE_SYSTEM_OPENCV)
   message(STATUS "  Using OpenCV system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(OPENCV_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(OPENCV_SB_SRC_DIR ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   #TODO: add these properly
   # list(APPEND ${proj}_DEPENDENCIES TIFF)
diff --git a/CMake/External_OpenJpeg.cmake b/CMake/External_OpenJpeg.cmake
index 10e463f3ac..b9558c7ca5 100644
--- a/CMake/External_OpenJpeg.cmake
+++ b/CMake/External_OpenJpeg.cmake
@@ -10,15 +10,12 @@ mark_as_advanced(USE_SYSTEM_OPENJPEG)
 if(USE_SYSTEM_OPENJPEG)
   message(STATUS "  Using OpenJpeg system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(OPENJPEG_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(OPENJPEG_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(${proj}_ADDITIONAL_CACHE)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # handle dependencies : TIFF, ZLIB, ...
   # although they seem un-used by the openjp2 codec
   if(USE_SYSTEM_TIFF)
-    list(APPEND ${proj}_ADDITIONAL_CACHE ${SYSTEM_TIFF_CMAKE_CACHE})
+    list(APPEND OPENJPEG_SB_CONFIG ${SYSTEM_TIFF_CMAKE_CACHE})
   else()
     list(APPEND ${proj}_DEPENDENCIES TIFF)
   endif()
@@ -52,7 +49,7 @@ else()
         -DBUILD_TESTING:BOOL=OFF
         -DBUILD_THIRDPARTY:BOOL=OFF
         -DCMAKE_PREFIX_PATH:STRING=${CMAKE_INSTALL_PREFIX};${CMAKE_PREFIX_PATH}
-        ${OPENJPEG_ADDITIONAL_CACHE}
+        ${OPENJPEG_SB_CONFIG}
         DEPENDS ${${proj}_DEPENDENCIES}
         CMAKE_COMMAND ${SB_CMAKE_COMMAND}
     )
diff --git a/CMake/External_OpenThreads.cmake b/CMake/External_OpenThreads.cmake
index f532a7811d..625dcbc71c 100644
--- a/CMake/External_OpenThreads.cmake
+++ b/CMake/External_OpenThreads.cmake
@@ -14,9 +14,7 @@ endif()
 if(USE_SYSTEM_OPENTHREADS)
   message(STATUS "  Using OpenThread system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(OPENTHREADS_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(OPENTHREADS_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   #TODO: try to use cmake variable for DOWNLOAD_COMMAND for different platforms
   if(MSVC)
diff --git a/CMake/External_SQLite.cmake b/CMake/External_SQLite.cmake
index 9d35e17bfb..9e3efbb5cc 100644
--- a/CMake/External_SQLite.cmake
+++ b/CMake/External_SQLite.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_SQLITE)
 if(USE_SYSTEM_SQLITE)
   message(STATUS "  Using SQLite system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(SQLITE_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(SQLITE_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(UNIX)
     ExternalProject_Add(${proj}
@@ -56,4 +54,4 @@ else()
   
   
   message(STATUS "  Using SQLite SuperBuild version")
-endif()
\ No newline at end of file
+endif()
diff --git a/CMake/External_TinyXML.cmake b/CMake/External_TinyXML.cmake
index afbee2ff49..5727fdb06d 100644
--- a/CMake/External_TinyXML.cmake
+++ b/CMake/External_TinyXML.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_TINYXML)
 if(USE_SYSTEM_TINYXML)
   message(STATUS "  Using TinyXML system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(TINYXML_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(TINYXML_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   ExternalProject_Add(${proj}
     PREFIX ${proj}
@@ -31,4 +29,4 @@ else()
     )
   
   message(STATUS "  Using TinyXML SuperBuild version")
-endif()
\ No newline at end of file
+endif()
diff --git a/CMake/External_curl.cmake b/CMake/External_curl.cmake
index 72e75e2b56..22d969b7bc 100644
--- a/CMake/External_curl.cmake
+++ b/CMake/External_curl.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_CURL)
 if(USE_SYSTEM_CURL)
   message(STATUS "  Using cURL system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(CURL_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(CURL_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
+  SETUP_SUPERBUILD(PROJECT ${proj})
     
   if(USE_SYSTEM_ZLIB)
     set(CURL_SB_ZLIB_CONFIG)
diff --git a/CMake/External_expat.cmake b/CMake/External_expat.cmake
index aed1742695..33139db1c7 100644
--- a/CMake/External_expat.cmake
+++ b/CMake/External_expat.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_EXPAT)
 if(USE_SYSTEM_EXPAT)
   message(STATUS "  Using expat system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(EXPAT_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(EXPAT_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   ExternalProject_Add(${proj}
     PREFIX ${proj}
@@ -32,4 +30,4 @@ else()
     
   message(STATUS "  Using Expat SuperBuild version")
 
-endif()
\ No newline at end of file
+endif()
diff --git a/CMake/External_fftw.cmake b/CMake/External_fftw.cmake
index ef325df5c3..53a85397bb 100644
--- a/CMake/External_fftw.cmake
+++ b/CMake/External_fftw.cmake
@@ -10,7 +10,7 @@ mark_as_advanced(USE_SYSTEM_FFTW)
 if(USE_SYSTEM_FFTW)
   message(STATUS "  Using FFTW system version")
 else()
-  set(${proj}_DEPENDENCIES)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   set(projFloat ${proj}F)
   set(projDouble ${proj}D)
   
@@ -74,4 +74,4 @@ else()
   
 
 
-endif()
\ No newline at end of file
+endif()
diff --git a/CMake/External_geos.cmake b/CMake/External_geos.cmake
index e3a746b769..0fdc349d1a 100644
--- a/CMake/External_geos.cmake
+++ b/CMake/External_geos.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_GEOS)
 if(USE_SYSTEM_GEOS)
   message(STATUS "  Using GEOS system version")
 else()
-  
-  set(GEOS_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(GEOS_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
 
   ExternalProject_Add(${proj}
     PREFIX ${proj}
diff --git a/CMake/External_geotiff.cmake b/CMake/External_geotiff.cmake
index 0764c99db9..99e2f2686d 100644
--- a/CMake/External_geotiff.cmake
+++ b/CMake/External_geotiff.cmake
@@ -10,10 +10,7 @@ mark_as_advanced(USE_SYSTEM_GEOTIFF)
 if(USE_SYSTEM_GEOTIFF)
   message(STATUS "  Using libgeotiff system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(GEOTIFF_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(GEOTIFF_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(GEOTIFF_SB_CONFIG)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # handle dependencies : TIFF Proj4 Zlib Jpeg
   if(USE_SYSTEM_TIFF)
diff --git a/CMake/External_jpeg.cmake b/CMake/External_jpeg.cmake
index 0fdf70eaad..348fd9e5d1 100644
--- a/CMake/External_jpeg.cmake
+++ b/CMake/External_jpeg.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_JPEG)
 if(USE_SYSTEM_JPEG)
   message(STATUS "  Using libjpeg system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(JPEG_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(JPEG_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(WIN32)
       
diff --git a/CMake/External_libKML.cmake b/CMake/External_libKML.cmake
index a44aba50b5..aa4d67d280 100644
--- a/CMake/External_libKML.cmake
+++ b/CMake/External_libKML.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_LIBKML)
 if(USE_SYSTEM_LIBKML)
   message(STATUS "  Using libKML system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(LIBKML_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(LIBKML_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(USE_SYSTEM_EXPAT)
     set(LIBKML_SB_EXPAT_CONFIG)
diff --git a/CMake/External_libpng.cmake b/CMake/External_libpng.cmake
index 5591baa47b..c1a1169872 100644
--- a/CMake/External_libpng.cmake
+++ b/CMake/External_libpng.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_PNG)
 if(USE_SYSTEM_PNG)
   message(STATUS "  Using libtiff system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(PNG_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(PNG_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(USE_SYSTEM_ZLIB)
     set(PNG_SB_ZLIB_CONFIG)
diff --git a/CMake/External_muParser.cmake b/CMake/External_muParser.cmake
index 4fc1b6345c..12fb0526fb 100644
--- a/CMake/External_muParser.cmake
+++ b/CMake/External_muParser.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_MUPARSER)
 if(USE_SYSTEM_MUPARSER)
   message(STATUS "  Using muParser system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(MUPARSER_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(MUPARSER_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   ExternalProject_Add(${proj}
     PREFIX ${proj}
diff --git a/CMake/External_muParserX.cmake b/CMake/External_muParserX.cmake
index d297cd1f68..de3a0638eb 100644
--- a/CMake/External_muParserX.cmake
+++ b/CMake/External_muParserX.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_MUPARSERX)
 if(USE_SYSTEM_MUPARSERX)
   message(STATUS "  Using muParserX system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(MUPARSERX_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(MUPARSERX_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # svn checkout http://muparserx.googlecode.com/svn/trunk/ muparserx-read-only
   
diff --git a/CMake/External_ossim.cmake b/CMake/External_ossim.cmake
index ca1dfad3ff..bec94c6c11 100644
--- a/CMake/External_ossim.cmake
+++ b/CMake/External_ossim.cmake
@@ -17,10 +17,7 @@ ADD_SYSTEM_LOCATION(PROJECT ${proj} VARIABLES ${proj}_LIBRARY ${proj}_INCLUDE_DI
 if(USE_SYSTEM_OSSIM)
   message(STATUS "  Using OSSIM system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(OSSIM_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(OSSIM_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(OSSIM_SB_CONFIG)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # set project dependencies (GEOS, GDAL, TIFF, JPEG, OPENTHREADS, )
   if(USE_SYSTEM_TIFF)
diff --git a/CMake/External_pcre.cmake b/CMake/External_pcre.cmake
index cf045a3de7..29ec1081fc 100644
--- a/CMake/External_pcre.cmake
+++ b/CMake/External_pcre.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_PCRE)
 if(USE_SYSTEM_PCRE)
   message(STATUS "  Using pcre system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(PCRE_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(PCRE_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(MSVC)
     # TODO ?
diff --git a/CMake/External_proj4.cmake b/CMake/External_proj4.cmake
index 794e9a69b4..a365d2a6be 100644
--- a/CMake/External_proj4.cmake
+++ b/CMake/External_proj4.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_PROJ)
 if(USE_SYSTEM_PROJ)
   message(STATUS "  Using Proj4 system version")
 else()
-  
-  set(PROJ_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(PROJ_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(MSVC)
 
diff --git a/CMake/External_qt4.cmake b/CMake/External_qt4.cmake
index e8e48e2e69..1c495cea6a 100644
--- a/CMake/External_qt4.cmake
+++ b/CMake/External_qt4.cmake
@@ -10,9 +10,7 @@ mark_as_advanced(USE_SYSTEM_QT4)
 if(USE_SYSTEM_QT4)
   message(STATUS "  Using Qt4 system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(QT4_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(QT4_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   if(NOT DEFINED git_protocol)
     set(git_protocol "git")
@@ -63,4 +61,4 @@ else()
 
   message(STATUS "  Using Qt4 SuperBuild version")
 
-endif()
\ No newline at end of file
+endif()
diff --git a/CMake/External_swig.cmake b/CMake/External_swig.cmake
index 6ea199f615..7eb30ae22d 100644
--- a/CMake/External_swig.cmake
+++ b/CMake/External_swig.cmake
@@ -10,10 +10,7 @@ mark_as_advanced(USE_SYSTEM_SWIG)
 if(USE_SYSTEM_SWIG)
   message(STATUS "  Using swig system version")
 else()
-  set(${proj}_DEPENDENCIES)
-  set(SWIG_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(SWIG_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
-  set(SWIG_SB_CONFIG_CACHE)
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   set(PythonInterp_FIND_VERSION 2.7)
   find_package(PythonInterp)
@@ -49,14 +46,14 @@ else()
     if(USE_SYSTEM_PCRE)
       # TODO : handle specific location
     else()
-      list(APPEND SWIG_SB_CONFIG_CACHE --with-pcre-prefix=${CMAKE_INSTALL_PREFIX})
+      list(APPEND SWIG_SB_CONFIG --with-pcre-prefix=${CMAKE_INSTALL_PREFIX})
       list(APPEND ${proj}_DEPENDENCIES PCRE)
     endif()
     
     if(USE_SYSTEM_BOOST)
       # TODO : handle specific location
     else()
-      list(APPEND SWIG_SB_CONFIG_CACHE --with-boost=${CMAKE_INSTALL_PREFIX})
+      list(APPEND SWIG_SB_CONFIG --with-boost=${CMAKE_INSTALL_PREFIX})
       list(APPEND ${proj}_DEPENDENCIES BOOST)
     endif()
     
@@ -71,7 +68,7 @@ else()
         --prefix=${CMAKE_INSTALL_PREFIX}
         ${SWIG_SB_PYTHON_CONFIG}
         ${SWIG_SB_JAVA_CONFIG}
-        ${SWIG_SB_CONFIG_CACHE}
+        ${SWIG_SB_CONFIG}
       BUILD_COMMAND $(MAKE)
       INSTALL_COMMAND $(MAKE) install
       DEPENDS ${${proj}_DEPENDENCIES}
diff --git a/CMake/External_zlib.cmake b/CMake/External_zlib.cmake
index 136757ff75..9250917c22 100644
--- a/CMake/External_zlib.cmake
+++ b/CMake/External_zlib.cmake
@@ -11,9 +11,7 @@ ADD_SYSTEM_PREFIX(PROJECT ${proj} CMAKE_ALIAS ZLIB_ROOT)
 if(USE_SYSTEM_ZLIB)
   message(STATUS "  Using Zlib system version")
 else()
-  
-  set(ZLIB_SB_BUILD_DIR ${CMAKE_BINARY_DIR}/${proj}/build)
-  set(ZLIB_SB_SRC ${CMAKE_BINARY_DIR}/${proj}/src/${proj})
+  SETUP_SUPERBUILD(PROJECT ${proj})
   
   # Try official release 1.2.8
   ExternalProject_Add(${proj}
-- 
GitLab