[llvm] [CMake] Create generic runtimes targets as needed (PR #76096)
Petr Hosek via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 20 11:54:14 PST 2023
https://github.com/petrhosek created https://github.com/llvm/llvm-project/pull/76096
We currently create a generic runtime target for all subbuilds. For example if we're building libcxx for aarch64-linux-gnu and x86_64-linux-gnu, we would create the cxx target that would depend on cxx-aarch64-linux-gnu and cxx-x86_64-linux-gnu. The current implementation creates the generic runtimes targets ahead of time which introduces an issue where different subbuilds enable different runtimes. We should instead create the generic targets as needed.
>From 4240d23dfc2a8857fe690c9b39b3da406b2e0335 Mon Sep 17 00:00:00 2001
From: Petr Hosek <phosek at google.com>
Date: Wed, 20 Dec 2023 19:52:03 +0000
Subject: [PATCH] [CMake] Create generic runtimes targets as needed
We currently create a generic runtime target for all subbuilds. For
example if we're building libcxx for aarch64-linux-gnu and
x86_64-linux-gnu, we would create the cxx target that would depend on
cxx-aarch64-linux-gnu and cxx-x86_64-linux-gnu. The current
implementation creates the generic runtimes targets ahead of time which
introduces an issue where different subbuilds enable different runtimes.
We should instead create the generic targets as needed.
---
llvm/runtimes/CMakeLists.txt | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt
index 77254b7eb5e622..db50b6d1e8f8c3 100644
--- a/llvm/runtimes/CMakeLists.txt
+++ b/llvm/runtimes/CMakeLists.txt
@@ -391,8 +391,17 @@ function(runtime_register_target name)
add_dependencies(runtimes-test-depends runtimes-test-depends-${name})
endif()
foreach(runtime_name ${runtime_names})
+ if(NOT TARGET ${runtime_name})
+ add_custom_target(${runtime_name})
+ endif()
add_dependencies(${runtime_name} ${runtime_name}-${name})
+ if(NOT TARGET install-${runtime_name})
+ add_custom_target(install-${runtime_name})
+ endif()
add_dependencies(install-${runtime_name} install-${runtime_name}-${name})
+ if(NOT TARGET install-${runtime_name}-stripped)
+ add_custom_target(install-${runtime_name}-stripped)
+ endif()
add_dependencies(install-${runtime_name}-stripped install-${runtime_name}-${name}-stripped)
endforeach()
foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS})
@@ -459,11 +468,6 @@ if(runtimes)
add_custom_target(runtimes-test-depends)
set(test_targets "")
endif()
- foreach(runtime_name ${RUNTIME_NAMES})
- add_custom_target(${runtime_name})
- add_custom_target(install-${runtime_name})
- add_custom_target(install-${runtime_name}-stripped)
- endforeach()
if(LLVM_RUNTIME_DISTRIBUTION_COMPONENTS)
foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS})
add_custom_target(${component})
More information about the llvm-commits
mailing list