From: Chris Bieneman Date: Fri, 16 Sep 2016 22:19:19 +0000 (+0000) Subject: [CMake] Support symlinks with the same name as the binary X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78279ce05d716c96c620881c54332abce47a9c02;p=llvm [CMake] Support symlinks with the same name as the binary This supports creating symlinks to tools in different directories than the tool is built to. This is useful for the LLDB framework build which I’m sending patches for shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281788 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 46c9d33de37..94c08f5daf7 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1246,6 +1246,12 @@ function(add_llvm_tool_symlink name dest) set(output_path "${LLVM_RUNTIME_OUTPUT_INTDIR}/${name}${CMAKE_EXECUTABLE_SUFFIX}") + set(target_name ${name}) + if(TARGET ${name}) + set(target_name ${name}-link) + endif() + + if(ARG_ALWAYS_GENERATE) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${dest_binary}) @@ -1255,8 +1261,8 @@ function(add_llvm_tool_symlink name dest) add_custom_command(OUTPUT ${output_path} COMMAND ${CMAKE_COMMAND} -E ${LLVM_LINK_OR_COPY} "${dest_binary}" "${output_path}" DEPENDS ${dest}) - add_custom_target(${name} ALL DEPENDS ${output_path}) - set_target_properties(${name} PROPERTIES FOLDER Tools) + add_custom_target(${target_name} ALL DEPENDS ${output_path}) + set_target_properties(${target_name} PROPERTIES FOLDER Tools) # Make sure the parent tool is a toolchain tool, otherwise exclude this tool list(FIND LLVM_TOOLCHAIN_TOOLS ${dest} LLVM_IS_${dest}_TOOLCHAIN_TOOL)