From 8a534b03c16605ec26d0d11c250e7a47978846a8 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 17 May 2018 16:58:44 +0000 Subject: [PATCH] [CMake] Support runtimes in distributions Summary: This patch adds a new internal variable LLVM_RUNTIME_DISTRIBUTION_COMPONENTS which specifies distribution components that are part of runtime projects, and thus should be exposed from runtime configuraitons up into the top-level CMake configurations. This is required for allowing runtime components to be included in LLVM_DISTRIBUTION_COMPONENTS because we verify that the build and install targets exist for every component specified for the distribution. Without this patch runtimes and builtins can only be included in distributions in whole, not by component. Reviewers: phosek Reviewed By: phosek Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D46705 llvm-svn: 332631 --- llvm/CMakeLists.txt | 2 +- llvm/runtimes/CMakeLists.txt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 8a7ae1e25f22..6ce58a403314 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -998,7 +998,7 @@ if(LLVM_DISTRIBUTION_COMPONENTS) add_custom_target(distribution) add_custom_target(install-distribution) add_custom_target(install-distribution-stripped) - foreach(target ${LLVM_DISTRIBUTION_COMPONENTS}) + foreach(target ${LLVM_DISTRIBUTION_COMPONENTS} ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS}) if(TARGET ${target}) add_dependencies(distribution ${target}) else() diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt index 23707999a241..0ef2ff6d23c3 100644 --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -352,6 +352,11 @@ else() # if this is included from LLVM's CMake list(APPEND test_targets check-${runtime_name}) endif() endforeach() + foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS}) + if(NOT ${component} IN_LIST SUB_COMPONENTS) + list(APPEND extra_targets ${component} install-${component} install-${component}-stripped) + endif() + endforeach() if(LLVM_INCLUDE_TESTS) list(APPEND test_targets runtimes-test-depends check-runtimes) @@ -407,6 +412,14 @@ else() # if this is included from LLVM's CMake list(APPEND ${name}_extra_targets "${target_name}:${target_name}-${name}") endforeach() + foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS}) + if(NOT "${target_name}:${target_name}-${component}" IN_LIST extra_targets) + list(APPEND ${name}_extra_targets + "${target_name}:${target_name}-${component}" + "${target_name}:${target_name}-install-${component}") + endif() + endforeach() + if(LLVM_INCLUDE_TESTS) list(APPEND ${name}_test_targets "runtimes-test-depends:runtimes-test-depends-${name}" @@ -478,6 +491,12 @@ else() # if this is included from LLVM's CMake add_custom_target(runtimes-test-depends) set(test_targets "") endif() + if(LLVM_RUNTIME_DISTRIBUTION_COMPONENTS) + foreach(component ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS}) + add_custom_target(${component}) + add_custom_target(install-${component}) + endforeach() + endif() endif() foreach(name ${LLVM_RUNTIME_TARGETS}) -- GitLab