aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Fuentes <ofv@wanadoo.es>2010-10-17 16:10:32 +0000
committerOscar Fuentes <ofv@wanadoo.es>2010-10-17 16:10:32 +0000
commitfbfe899a1c5467d82296b0a61782051911d48163 (patch)
tree57c4b6f38a60c20c499620900e2eb14b052501c2
parentb70fba451e5a92df6f77ca288caf80b0c5572593 (diff)
Use a script for creating the clang++ executable.
The previous method used the DESTDIR environment variable at configure time, but sometimes it is only available at install time. See PR8397. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116689 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/driver/CMakeLists.txt3
-rw-r--r--tools/driver/clang_symlink.cmake18
2 files changed, 19 insertions, 2 deletions
diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
index ec6e9c6e80..b5c7b14886 100644
--- a/tools/driver/CMakeLists.txt
+++ b/tools/driver/CMakeLists.txt
@@ -35,7 +35,6 @@ add_clang_executable(clang
if(UNIX)
set(CLANGXX_LINK_OR_COPY create_symlink)
- set(CLANGXX_DESTDIR $ENV{DESTDIR}/)
else()
set(CLANGXX_LINK_OR_COPY copy)
endif()
@@ -51,4 +50,4 @@ install(TARGETS clang
RUNTIME DESTINATION bin)
# Create the clang++ symlink at installation time.
-install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E ${CLANGXX_LINK_OR_COPY} \"${CMAKE_INSTALL_PREFIX}/bin/clang${CMAKE_EXECUTABLE_SUFFIX}\" \"${CLANGXX_DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/clang++${CMAKE_EXECUTABLE_SUFFIX}\")")
+install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\")
diff --git a/tools/driver/clang_symlink.cmake b/tools/driver/clang_symlink.cmake
new file mode 100644
index 0000000000..d3f11d313e
--- /dev/null
+++ b/tools/driver/clang_symlink.cmake
@@ -0,0 +1,18 @@
+# We need to execute this script at installation time because the
+# DESTDIR environment variable may be unset at configuration time.
+# See PR8397.
+
+if(UNIX)
+ set(CLANGXX_LINK_OR_COPY create_symlink)
+ set(CLANGXX_DESTDIR $ENV{DESTDIR})
+else()
+ set(CLANGXX_LINK_OR_COPY copy)
+endif()
+
+set(bindir "${CLANGXX_DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/")
+set(clang "${bindir}clang${CMAKE_EXECUTABLE_SUFFIX}")
+set(clangxx "${bindir}clang++${CMAKE_EXECUTABLE_SUFFIX}")
+
+message("Creating clang++ executable based on ${clang}")
+
+execute_process(COMMAND "${CMAKE_COMMAND}" -E ${CLANGXX_LINK_OR_COPY} "${clang}" "${clangxx}")