From: Chris Bieneman Date: Thu, 15 Dec 2016 18:17:07 +0000 (+0000) Subject: [CMake] Minor change to symlink generation for LLDB X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69a678c2440a6b75b095a1d9d8736a1887a11855;p=llvm [CMake] Minor change to symlink generation for LLDB If OUTPUT_DIR is not specified we can assume the symlink is linking to a file in the same directory, so we can use $ to create a relative symlink. In the case of LLDB, when we build a framework, we are creating symlinks in a different directory than the file we're pointing to, and we don't install those links. To make this work in the build directory we can use $ instead, which uses the full path to the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289840 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 3f494b89b5f..f35fcf444d2 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1290,6 +1290,8 @@ endfunction() function(add_llvm_tool_symlink link_name target) cmake_parse_arguments(ARG "ALWAYS_GENERATE" "OUTPUT_DIR" "" ${ARGN}) + set(dest_binary "$") + # This got a bit gross... For multi-configuration generators the target # properties return the resolved value of the string, not the build system # expression. To reconstruct the platform-agnostic path we have to do some @@ -1298,6 +1300,11 @@ function(add_llvm_tool_symlink link_name target) # and replace it with CMAKE_CFG_INTDIR. This allows the build step to be type # agnostic again. if(NOT ARG_OUTPUT_DIR) + # If you're not overriding the OUTPUT_DIR, we can make the link relative in + # the same directory. + if(UNIX) + set(dest_binary "$") + endif() if(CMAKE_CONFIGURATION_TYPES) list(GET CMAKE_CONFIGURATION_TYPES 0 first_type) string(TOUPPER ${first_type} first_type_upper) @@ -1323,10 +1330,8 @@ function(add_llvm_tool_symlink link_name target) if(UNIX) set(LLVM_LINK_OR_COPY create_symlink) - set(dest_binary "$") else() set(LLVM_LINK_OR_COPY copy) - set(dest_binary "$") endif() set(output_path "${ARG_OUTPUT_DIR}/${link_name}${CMAKE_EXECUTABLE_SUFFIX}")