[PATCH] D28869: [CMake] Fix `is_llvm_target_library` and support out-of-order components

Chris Bieneman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 12:32:06 PST 2017


beanz created this revision.
Herald added a subscriber: jgosnell.

This patch is required by https://reviews.llvm.org/D28855, and enables us to rely on CMake's ability to handle out of order target dependencies.


https://reviews.llvm.org/D28869

Files:
  cmake/modules/LLVM-Config.cmake


Index: cmake/modules/LLVM-Config.cmake
===================================================================
--- cmake/modules/LLVM-Config.cmake
+++ cmake/modules/LLVM-Config.cmake
@@ -17,12 +17,15 @@
   string(TOUPPER "${LLVM_ALL_TARGETS}" targets)
   foreach(t ${targets})
     if( capitalized_lib STREQUAL t OR
-        capitalized_lib STREQUAL "LLVM${t}" OR
-        capitalized_lib STREQUAL "LLVM${t}CODEGEN" OR
-        capitalized_lib STREQUAL "LLVM${t}ASMPARSER" OR
-        capitalized_lib STREQUAL "LLVM${t}ASMPRINTER" OR
-        capitalized_lib STREQUAL "LLVM${t}DISASSEMBLER" OR
-        capitalized_lib STREQUAL "LLVM${t}INFO" )
+        capitalized_lib STREQUAL "${t}" OR
+        capitalized_lib STREQUAL "${t}DESC" OR
+        capitalized_lib STREQUAL "${t}CODEGEN" OR
+        capitalized_lib STREQUAL "${t}ASMPARSER" OR
+        capitalized_lib STREQUAL "${t}ASMPRINTER" OR
+        capitalized_lib STREQUAL "${t}DISASSEMBLER" OR
+        capitalized_lib STREQUAL "${t}INFO" OR
+        capitalized_lib STREQUAL "${t}UTILS" OR
+        capitalized_lib STREQUAL "${t}INSTPRINTER" )
       set(${return_var} ON PARENT_SCOPE)
       break()
     endif()
@@ -200,7 +203,11 @@
         # The component is unknown. Maybe is an omitted target?
         is_llvm_target_library(${c} iltl_result)
         if( NOT iltl_result )
-          message(FATAL_ERROR "Library `${c}' not found in list of llvm libraries.")
+          # If it is not an omitted target we should assume it is a component
+          # that hasn't yet been processed by CMake. Missing components will
+          # cause errors later in the configuration, so we can safely assume
+          # that this is valid here.
+          list(APPEND expanded_components LLVM${c})
         endif()
       else( lib_idx LESS 0 )
         list(GET LLVM_AVAILABLE_LIBS ${lib_idx} canonical_lib)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28869.84877.patch
Type: text/x-patch
Size: 1858 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170118/be52b3e3/attachment.bin>


More information about the llvm-commits mailing list