mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-14 20:22:30 +00:00
[CMake] Pass symlink dependency to add_llvm_install_targets explicitly
The install-${name}-stripped targets don't strip when ${name} is being symlinked, e.g. llvm-ar or llvm-objcopy. The problem is that llvm_install_symlink passes install-${dest} as a dependency of install-${name}, e.g. install-llvm-ar becomes a dependency of both install-llvm-ranlib and install-llvm-ranlib-stripped. What this means is that when installing a distribution that contains both llvm-ar and llvm-ranlib is that first the stripped version of llvm-ar is installed (by the install-llvm-ar-stripped target) and then it's overwritten by an unstripped version of llvm-ar bnecause install-llvm-ranlib-stripped has install-llvm-ranlib as a dependency as mentioned earlier. To avoid this issue, rather than passing the install-${dest} as dependency, we introduce a new argument to add_llvm_install_targets for symlink target which expands it into an appropriate dependency, i.e. install-${dest} for install-${name} target and install-${dest}-stripped for install-${name}-stripped. Differential Revision: https://reviews.llvm.org/D71951
This commit is contained in:
parent
83d690a149
commit
71a2a62163
@ -642,7 +642,7 @@ function(llvm_add_library name)
|
||||
endfunction()
|
||||
|
||||
function(add_llvm_install_targets target)
|
||||
cmake_parse_arguments(ARG "" "COMPONENT;PREFIX" "DEPENDS" ${ARGN})
|
||||
cmake_parse_arguments(ARG "" "COMPONENT;PREFIX;SYMLINK" "DEPENDS" ${ARGN})
|
||||
if(ARG_COMPONENT)
|
||||
set(component_option -DCMAKE_INSTALL_COMPONENT="${ARG_COMPONENT}")
|
||||
endif()
|
||||
@ -679,6 +679,11 @@ function(add_llvm_install_targets target)
|
||||
add_dependencies(${target} ${target_dependencies})
|
||||
add_dependencies(${target}-stripped ${target_dependencies})
|
||||
endif()
|
||||
|
||||
if(ARG_SYMLINK)
|
||||
add_dependencies(${target} install-${ARG_SYMLINK})
|
||||
add_dependencies(${target}-stripped install-${ARG_SYMLINK}-stripped)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(add_llvm_component_library name)
|
||||
@ -1627,8 +1632,9 @@ function(llvm_install_library_symlink name dest type)
|
||||
|
||||
if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
|
||||
add_llvm_install_targets(install-${name}
|
||||
DEPENDS ${name} ${dest} install-${dest}
|
||||
COMPONENT ${name})
|
||||
DEPENDS ${name} ${dest}
|
||||
COMPONENT ${name}
|
||||
SYMLINK ${dest})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@ -1660,8 +1666,9 @@ function(llvm_install_symlink name dest)
|
||||
|
||||
if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
|
||||
add_llvm_install_targets(install-${name}
|
||||
DEPENDS ${name} ${dest} install-${dest}
|
||||
COMPONENT ${name})
|
||||
DEPENDS ${name} ${dest}
|
||||
COMPONENT ${name}
|
||||
SYMLINK ${dest})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user