[PATCH] D46705: [CMake] Support runtimes in distributions

Chris Bieneman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 10 10:18:55 PDT 2018


beanz created this revision.
beanz added a reviewer: phosek.
Herald added a subscriber: mgorny.

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.


Repository:
  rL LLVM

https://reviews.llvm.org/D46705

Files:
  CMakeLists.txt
  runtimes/CMakeLists.txt


Index: runtimes/CMakeLists.txt
===================================================================
--- runtimes/CMakeLists.txt
+++ runtimes/CMakeLists.txt
@@ -352,6 +352,11 @@
         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 @@
       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 @@
           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})
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -997,7 +997,7 @@
   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()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46705.146151.patch
Type: text/x-patch
Size: 2162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180510/c8da5ea4/attachment.bin>


More information about the llvm-commits mailing list