summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Bieneman <chris.bieneman@me.com>2018-05-17 16:58:44 +0000
committerChris Bieneman <chris.bieneman@me.com>2018-05-17 16:58:44 +0000
commite605bbd4c503590091fdcfd52cdb97385d02b36c (patch)
treef41fda89928498344f92d7b4e08f6fc7652cf3db
parent49f3003c7f84443d3d3632f6ba24bdfd03414ef3 (diff)
[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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332631 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt2
-rw-r--r--runtimes/CMakeLists.txt19
2 files changed, 20 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a7ae1e25f2..6ce58a40331 100644
--- a/CMakeLists.txt
+++ b/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/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
index 23707999a24..0ef2ff6d23c 100644
--- a/runtimes/CMakeLists.txt
+++ b/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})