summaryrefslogtreecommitdiff
blob: f5c867b9b4a26258a9ed5c9f1048907c664adb06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
From 5c04f9c2d47a41f6113f45eeb4dd9f7968f2cd52 Mon Sep 17 00:00:00 2001
From: Christoph Junghans <junghans@lanl.gov>
Date: Tue, 20 May 2014 09:27:47 -0600
Subject: [PATCH] fix make install non-empty DESTDIR

Symlinks were created even when make install was called with a
non-empty DESTDIR variable. Fixed by creating the symlinks in build
directory first and then install them using common install.
DESTDIR installation is needed for binary packages.
---
 CMakeLists.txt | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00a71c7..8d5df19 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1762,15 +1762,22 @@ if(NOT HPX_NO_INSTALL)
 
   if(UNIX)
     file(GLOB scripts "${CMAKE_SOURCE_DIR}/python/scripts/*.py")
+    execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory
+      "${CMAKE_BINARY_DIR}/python/scripts" )
     foreach(script ${scripts})
       get_filename_component(script_name ${script} NAME)
       get_filename_component(script_name_we ${script} NAME_WE)
-      install(CODE
-        "set(bindir \"${CMAKE_INSTALL_PREFIX}/bin/\")
-         execute_process(
-           COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
-                   \"${script_name}\" \"${script_name_we}\"
-           WORKING_DIRECTORY \"\${bindir}\")")
+
+      #make copy, so that we have intact symlink in CMAKE_BINARY_DIR
+      execute_process(
+        COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${script}" "${script_name}"
+	WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/python/scripts")
+
+      execute_process(
+        COMMAND "${CMAKE_COMMAND}" -E create_symlink "${script_name}" "${script_name_we}"
+	WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/python/scripts")
+
+      install(FILES "${CMAKE_BINARY_DIR}/python/scripts/${script_name_we}" DESTINATION "bin")
     endforeach()
   endif()
 
@@ -1781,13 +1788,13 @@ if(NOT HPX_NO_INSTALL)
     FILES_MATCHING PATTERN "*.py"
     PATTERN ".git" EXCLUDE)
 
+  execute_process(COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_BINARY_DIR}/python" )
+  #make symlink, so that we have intact hpx symlink in CMAKE_BINARY_DIR
+  execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${CMAKE_SOURCE_DIR}/python/hpx"
+    "hpx-${HPX_VERSION}" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/python")
   # create a symlink in share pointing to the latest HPX installation
-  install(CODE
-    "set(sharedir \"${CMAKE_INSTALL_PREFIX}/share/\")
-     execute_process(
-     COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
-             \"hpx-${HPX_VERSION}\" \"hpx\"
-     WORKING_DIRECTORY \"\${sharedir}\")")
+  execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "hpx-${HPX_VERSION}" "hpx" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/python")
+  install(DIRECTORY "${CMAKE_BINARY_DIR}/python/hpx" DESTINATION "share")
 
   install( # Install external dependencies
     DIRECTORY external/cache/boost
-- 
1.8.5.5