[CMake] Fix installation of llvm-ranlib on multiconfig builder.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 8 Dec 2014 13:43:38 +0000 (13:43 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 8 Dec 2014 13:43:38 +0000 (13:43 +0000)
Introduce install_symlink.cmake from clang/tools/driver/clang_symlink.cmake.

FIXME: Would it be generalized?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223655 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llvm-ar/CMakeLists.txt
tools/llvm-ar/install_symlink.cmake [new file with mode: 0644]

index feb959031f9670b234c10fbc5c3b41a2962e99c9..da1789e2e96bba04c20aaa59c0f4720c67c70d0d 100644 (file)
@@ -24,4 +24,4 @@ add_custom_command(OUTPUT ${llvm_ranlib}
                    DEPENDS llvm-ar)
 
 add_custom_target(llvm-ranlib ALL DEPENDS ${llvm_ranlib})
-install(FILES "${llvm_ranlib}" DESTINATION bin)
+install(SCRIPT install_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\")
diff --git a/tools/llvm-ar/install_symlink.cmake b/tools/llvm-ar/install_symlink.cmake
new file mode 100644 (file)
index 0000000..e313897
--- /dev/null
@@ -0,0 +1,25 @@
+# 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(LINK_OR_COPY create_symlink)
+  set(DESTDIR $ENV{DESTDIR})
+else()
+  set(LINK_OR_COPY copy)
+endif()
+
+# CMAKE_EXECUTABLE_SUFFIX is undefined on cmake scripts. See PR9286.
+if( WIN32 )
+  set(EXECUTABLE_SUFFIX ".exe")
+else()
+  set(EXECUTABLE_SUFFIX "")
+endif()
+
+set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/")
+
+message("Creating llvm-ranlib")
+
+execute_process(
+  COMMAND "${CMAKE_COMMAND}" -E ${LINK_OR_COPY} "llvm-ar${EXECUTABLE_SUFFIX}" "llvm-ranlib${EXECUTABLE_SUFFIX}"
+  WORKING_DIRECTORY "${bindir}")