From: Chris Bieneman Date: Fri, 18 Sep 2015 17:39:58 +0000 (+0000) Subject: [CMake] More cleanup of installing symlinks. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f8d6e92d57aacf9388e8ed87cc43b22bd3367c4f;p=oota-llvm.git [CMake] More cleanup of installing symlinks. 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 --- diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 7040df500bb..45a374f95e7 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1024,7 +1024,13 @@ function(add_lit_testsuites project directory) 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}) diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake new file mode 100644 index 00000000000..65973a57135 --- /dev/null +++ b/cmake/modules/LLVMInstallSymlink.cmake @@ -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 index 65973a57135..00000000000 --- a/cmake/modules/install_symlink.cmake +++ /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()