]> granicus.if.org Git - llvm/commitdiff
[CMake] Support symlinks with the same name as the binary
authorChris Bieneman <beanz@apple.com>
Fri, 16 Sep 2016 22:19:19 +0000 (22:19 +0000)
committerChris Bieneman <beanz@apple.com>
Fri, 16 Sep 2016 22:19:19 +0000 (22:19 +0000)
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

cmake/modules/AddLLVM.cmake

index 46c9d33de37a3ac0561c8a4373dcf8bf49c1a0c9..94c08f5daf76ac65c313cdb424385fa87c5c04d3 100644 (file)
@@ -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)