From 95b6f045f1f104b96d443c404755c2757b6f6cf7 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Sun, 17 Oct 2010 16:10:32 +0000 Subject: [PATCH] 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. llvm-svn: 116689 --- clang/tools/driver/CMakeLists.txt | 3 +-- clang/tools/driver/clang_symlink.cmake | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 clang/tools/driver/clang_symlink.cmake diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt index ec6e9c6e8026..b5c7b148863a 100644 --- a/clang/tools/driver/CMakeLists.txt +++ b/clang/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/clang/tools/driver/clang_symlink.cmake b/clang/tools/driver/clang_symlink.cmake new file mode 100644 index 000000000000..d3f11d313ef4 --- /dev/null +++ b/clang/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}")