[PATCH] D132387: [runtimes] Handle interface targets in runtimes distribution components
Louis Dionne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 22 09:04:57 PDT 2022
ldionne created this revision.
ldionne added a reviewer: phosek.
Herald added a subscriber: mgorny.
Herald added a project: All.
ldionne requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
As reported in [1], cxx-headers is not a valid distribution target
because it is an interface target in CMake. This breaks the most
basic MultiDistributionExample of the runtimes build.
This patch handles interface targets by getting rid of the assumption
that all distribution components have a target associated to them. It
is valid for a distribution component to only have a `install-FOO`
target.
In the case where only `cxx-headers` is provided as a distribution
component, `ninja toolchain-distribution` will not build anything
after this patch, since there is effectively nothing to build for
the `cxx-headers` target. However, running `ninja install-toolchain-distribution`
will build everything, as expected.
[1]: https://discord.com/channels/636084430946959380/636732894974312448/1010013287464828968
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D132387
Files:
llvm/cmake/modules/LLVMDistributionSupport.cmake
llvm/runtimes/CMakeLists.txt
Index: llvm/runtimes/CMakeLists.txt
===================================================================
--- llvm/runtimes/CMakeLists.txt
+++ llvm/runtimes/CMakeLists.txt
@@ -214,7 +214,7 @@
endforeach()
foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS})
if(NOT ${component} IN_LIST SUB_COMPONENTS)
- list(APPEND extra_targets ${component} install-${component} install-${component}-stripped)
+ list(APPEND extra_targets install-${component} install-${component}-stripped)
endif()
endforeach()
Index: llvm/cmake/modules/LLVMDistributionSupport.cmake
===================================================================
--- llvm/cmake/modules/LLVMDistributionSupport.cmake
+++ llvm/cmake/modules/LLVMDistributionSupport.cmake
@@ -260,10 +260,10 @@
add_custom_target(install-${distribution_target}-stripped)
foreach(target ${distribution_components})
+ # Note that some distribution components may not have an actual target, but only an install-FOO target.
+ # This happens for example if a target is an INTERFACE target.
if(TARGET ${target})
add_dependencies(${distribution_target} ${target})
- else()
- message(SEND_ERROR "Specified distribution component '${target}' doesn't have a target")
endif()
if(TARGET install-${target})
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D132387.454531.patch
Type: text/x-patch
Size: 1331 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220822/119f65d7/attachment.bin>
More information about the llvm-commits
mailing list