From bc9481051b2fc6d4c880f43f569763a23da1b17d Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Tue, 17 Feb 2015 16:30:39 -0800
Subject: [PATCH] use configure_file to pass lib_paths to fixup_bundle

---
 cmake/macros/AddPathsToLibPaths.cmake             |  2 ++
 .../macros/CopyDllsBesideWindowsExecutable.cmake  | 15 ++++++++++-----
 .../FixupBundlePostBuild.cmake.in}                |  4 ++--
 3 files changed, 14 insertions(+), 7 deletions(-)
 rename cmake/{scripts/FixupBundlePostBuild.cmake => templates/FixupBundlePostBuild.cmake.in} (67%)

diff --git a/cmake/macros/AddPathsToLibPaths.cmake b/cmake/macros/AddPathsToLibPaths.cmake
index d86d054615..f9556b9363 100644
--- a/cmake/macros/AddPathsToLibPaths.cmake
+++ b/cmake/macros/AddPathsToLibPaths.cmake
@@ -14,6 +14,8 @@ macro(ADD_PATHS_TO_LIB_PATHS)
     set(TEMP_LIB_PATHS ${LIB_PATHS})
     list(APPEND TEMP_LIB_PATHS ${_PATH})
     
+    list(REMOVE_DUPLICATES _TEMP_LIB_PATHS)
+    
     set(LIB_PATHS ${TEMP_LIB_PATHS} CACHE TYPE LIST FORCE)
   endforeach()
 endmacro()
\ No newline at end of file
diff --git a/cmake/macros/CopyDllsBesideWindowsExecutable.cmake b/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
index 8c04e3183a..2498c0dcf3 100644
--- a/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
+++ b/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
@@ -11,15 +11,20 @@
 
 macro(COPY_DLLS_BESIDE_WINDOWS_EXECUTABLE)
   if (WIN32 AND NOT CMAKE_BUILD_TYPE STREQUAL "Release")
-    separate_arguments(LIB_PATHS_ARG ${LIB_PATHS})
+    
+    configure_file(
+      ${HIFI_CMAKE_DIR}/templates/FixupBundlePostBuild.cmake.in  
+      ${CMAKE_CURRENT_BINARY_DIR}/FixupBundlePostBuild.cmake
+      @ONLY
+    )
+    
     # add a post-build command to copy DLLs beside the interface executable
     add_custom_command(
       TARGET ${TARGET_NAME}
       POST_BUILD
-      COMMAND ${CMAKE_COMMAND} 
-        -DBUNDLE_EXECUTABLE=$<TARGET_FILE:${TARGET_NAME}> 
-        -DLIB_PATHS=${LIB_PATHS_ARG}
-        -P ${HIFI_CMAKE_DIR}/scripts/FixupBundlePostBuild.cmake
+      COMMAND ${CMAKE_COMMAND}
+        -DBUNDLE_EXECUTABLE=$<TARGET_FILE:${TARGET_NAME}>
+        -P ${CMAKE_CURRENT_BINARY_DIR}/FixupBundlePostBuild.cmake
     )
   endif ()
 endmacro()
\ No newline at end of file
diff --git a/cmake/scripts/FixupBundlePostBuild.cmake b/cmake/templates/FixupBundlePostBuild.cmake.in
similarity index 67%
rename from cmake/scripts/FixupBundlePostBuild.cmake
rename to cmake/templates/FixupBundlePostBuild.cmake.in
index c6d0b42aea..f72ba577b9 100644
--- a/cmake/scripts/FixupBundlePostBuild.cmake
+++ b/cmake/templates/FixupBundlePostBuild.cmake.in
@@ -10,5 +10,5 @@
 # 
 
 include(BundleUtilities)
-message(STATUS "LIB_PATHS for fixup_bundle bundle ${BUNDLE_EXECUTABLE} are ${LIB_PATHS}")
-fixup_bundle("${BUNDLE_EXECUTABLE}" "" "${LIB_PATHS}")
\ No newline at end of file
+message(STATUS "LIB_PATHS for fixup_bundle called for bundle ${BUNDLE_EXECUTABLE} are @LIB_PATHS@")
+fixup_bundle("${BUNDLE_EXECUTABLE}" "" "@LIB_PATHS@")
\ No newline at end of file