[CMake] More cleanup of installing symlinks.
authorChris Bieneman <beanz@apple.com>
Fri, 18 Sep 2015 17:39:58 +0000 (17:39 +0000)
committerChris Bieneman <beanz@apple.com>
Fri, 18 Sep 2015 17:39:58 +0000 (17:39 +0000)
In order to support building clang out-of-tree the install_symlink script needs to be installed, and it needs to be found by searching the CMAKE_MODULE_PATH.

This change renames install_symlink -> LLVMInstallSymlink so it doesn't conflict with naming from other projects, and adds searching behavior in AddLLVM.cmake

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

cmake/modules/AddLLVM.cmake
cmake/modules/LLVMInstallSymlink.cmake [new file with mode: 0644]
cmake/modules/install_symlink.cmake [deleted file]

index 7040df500bb915755da096d51c4872a1aa4bcf80..45a374f95e714b55b05c4bbe58c777f7a432bace 100644 (file)
@@ -1024,7 +1024,13 @@ function(add_lit_testsuites project directory)
 endfunction()
 
 function(llvm_install_symlink name dest)
 endfunction()
 
 function(llvm_install_symlink name dest)
-  install(SCRIPT ${CMAKE_SOURCE_DIR}/cmake/modules/install_symlink.cmake
+  foreach(path ${CMAKE_MODULE_PATH})
+    if(EXISTS ${path}/LLVMInstallSymlink.cmake)
+      set(INSTALL_SYMLINK ${path}/LLVMInstallSymlink.cmake)
+      break()
+    endif()
+  endforeach()
+  install(SCRIPT ${INSTALL_SYMLINK}
           CODE "install_symlink(${name} ${dest})"
           COMPONENT ${name})
 
           CODE "install_symlink(${name} ${dest})"
           COMPONENT ${name})
 
diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
new file mode 100644 (file)
index 0000000..65973a5
--- /dev/null
@@ -0,0 +1,28 @@
+# We need to execute this script at installation time because the
+# DESTDIR environment variable may be unset at configuration time.
+# See PR8397.
+
+function(install_symlink name target)
+  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 ${name}")
+
+  execute_process(
+    COMMAND "${CMAKE_COMMAND}" -E ${LINK_OR_COPY} "${target}${EXECUTABLE_SUFFIX}" "${name}${EXECUTABLE_SUFFIX}"
+    WORKING_DIRECTORY "${bindir}")
+
+endfunction()
diff --git a/cmake/modules/install_symlink.cmake b/cmake/modules/install_symlink.cmake
deleted file mode 100644 (file)
index 65973a5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# We need to execute this script at installation time because the
-# DESTDIR environment variable may be unset at configuration time.
-# See PR8397.
-
-function(install_symlink name target)
-  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 ${name}")
-
-  execute_process(
-    COMMAND "${CMAKE_COMMAND}" -E ${LINK_OR_COPY} "${target}${EXECUTABLE_SUFFIX}" "${name}${EXECUTABLE_SUFFIX}"
-    WORKING_DIRECTORY "${bindir}")
-
-endfunction()