llvmbuildectomy - compatibility with ocaml bindings
authorserge-sans-paille <sguelton@redhat.com>
Fri, 13 Nov 2020 13:04:19 +0000 (14:04 +0100)
committerserge-sans-paille <sguelton@redhat.com>
Fri, 13 Nov 2020 13:35:52 +0000 (14:35 +0100)
Use exact component name in add_ocaml_library.
Make expand_topologically compatible with new architecture.
Fix quoting in is_llvm_target_library.
Fix LLVMipo component name.
Write release note.

14 files changed:
llvm/bindings/ocaml/analysis/CMakeLists.txt
llvm/bindings/ocaml/bitreader/CMakeLists.txt
llvm/bindings/ocaml/bitwriter/CMakeLists.txt
llvm/bindings/ocaml/executionengine/CMakeLists.txt
llvm/bindings/ocaml/irreader/CMakeLists.txt
llvm/bindings/ocaml/linker/CMakeLists.txt
llvm/bindings/ocaml/llvm/CMakeLists.txt
llvm/bindings/ocaml/target/CMakeLists.txt
llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt
llvm/bindings/ocaml/transforms/utils/CMakeLists.txt
llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt
llvm/cmake/modules/LLVM-Config.cmake
llvm/docs/ReleaseNotes.rst
llvm/lib/Transforms/IPO/CMakeLists.txt

index f8ca84d..5eb04b6 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_analysis
   OCAML    llvm_analysis
   OCAMLDEP llvm
   C        analysis_ocaml
-  LLVM     analysis)
+  LLVM     Analysis)
index 8d16103..d71f51c 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_bitreader
   OCAML    llvm_bitreader
   OCAMLDEP llvm
   C        bitreader_ocaml
-  LLVM     bitreader)
+  LLVM     BitReader)
index 5a14498..6462d65 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_bitwriter
   OCAML    llvm_bitwriter
   OCAMLDEP llvm
   C        bitwriter_ocaml
-  LLVM     bitwriter)
+  LLVM     BitWriter)
index ae9af08..0b1428a 100644 (file)
@@ -2,5 +2,5 @@ add_ocaml_library(llvm_executionengine
   OCAML    llvm_executionengine
   OCAMLDEP llvm llvm_target
   C        executionengine_ocaml
-  LLVM     executionengine mcjit native
+  LLVM     ExecutionEngine MCJIT native
   PKG      ctypes)
index 87d269b..5654b18 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_irreader
   OCAML    llvm_irreader
   OCAMLDEP llvm
   C        irreader_ocaml
-  LLVM     irreader)
+  LLVM     IRReader)
index b6bc8ac..3bb3672 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_linker
   OCAML    llvm_linker
   OCAMLDEP llvm
   C        linker_ocaml
-  LLVM     linker)
+  LLVM     Linker)
index db7aee2..99ef1cb 100644 (file)
@@ -1,7 +1,7 @@
 add_ocaml_library(llvm
   OCAML llvm
   C     llvm_ocaml
-  LLVM  core support)
+  LLVM  Core Support)
 
 configure_file(
   "${CMAKE_CURRENT_SOURCE_DIR}/META.llvm.in"
index adee0fc..6e01a27 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_target
   OCAML    llvm_target
   OCAMLDEP llvm
   C        target_ocaml
-  LLVM     target)
+  LLVM     Target)
index 98c7c68..d680b02 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_scalar_opts
   OCAML    llvm_scalar_opts
   OCAMLDEP llvm
   C        scalar_opts_ocaml
-  LLVM     scalaropts)
+  LLVM     Scalar)
index 37f3eb7..920ed79 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_transform_utils
   OCAML    llvm_transform_utils
   OCAMLDEP llvm
   C        transform_utils_ocaml
-  LLVM     transformutils)
+  LLVM     TransformUtils)
index af0ffce..47af239 100644 (file)
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_vectorize
   OCAML    llvm_vectorize
   OCAMLDEP llvm
   C        vectorize_ocaml
-  LLVM     vectorize)
+  LLVM     Vectorize)
index 5a79fc1..ebe13e7 100644 (file)
@@ -28,7 +28,7 @@ function(is_llvm_target_library library return_var)
     string(TOUPPER "${LLVM_TARGETS_TO_BUILD}" targets)
   elseif(ARG_OMITTED_TARGETS)
     set(omitted_targets ${LLVM_ALL_TARGETS})
-    list(REMOVE_ITEM omitted_targets "${LLVM_TARGETS_TO_BUILD}")
+    list(REMOVE_ITEM omitted_targets ${LLVM_TARGETS_TO_BUILD})
     string(TOUPPER "${omitted_targets}" targets)
   else()
     string(TOUPPER "${LLVM_ALL_TARGETS}" targets)
@@ -302,14 +302,26 @@ function(expand_topologically name required_libs visited_libs)
     list(APPEND visited_libs ${name})
     set(visited_libs ${visited_libs} PARENT_SCOPE)
 
-    get_property(lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${name})
+    #
+    get_property(libname GLOBAL PROPERTY LLVM_COMPONENT_NAME_${name})
+    if(libname)
+      set(cname LLVM${libname})
+    elseif(TARGET ${name})
+      set(cname ${name})
+    elseif(TARGET LLVM${name})
+      set(cname LLVM${name})
+    else()
+      message(FATAL_ERROR "unknown component ${name}")
+    endif()
+
+    get_property(lib_deps TARGET ${cname} PROPERTY LLVM_LINK_COMPONENTS)
     foreach( lib_dep ${lib_deps} )
       expand_topologically(${lib_dep} "${required_libs}" "${visited_libs}")
       set(required_libs ${required_libs} PARENT_SCOPE)
       set(visited_libs ${visited_libs} PARENT_SCOPE)
     endforeach()
 
-    list(APPEND required_libs ${name})
+    list(APPEND required_libs ${cname})
     set(required_libs ${required_libs} PARENT_SCOPE)
   endif()
 endfunction()
index a511749..ac6aecc 100644 (file)
@@ -74,6 +74,13 @@ Changes to the LLVM IR
 Changes to building LLVM
 ------------------------
 
+* The internal ``llvm-build`` Python script and the associated ``LLVMBuild.txt``
+  files used to describe the LLVM component structure have been removed and
+  replaced by a pure ``CMake`` approach, where each component stores extra
+  properties in the created targets. These properties are processed once all
+  components are defined to resolve library dependencies and produce the header
+  expected by llvm-config.
+
 Changes to TableGen
 -------------------
 
index c391454..4874f72 100644 (file)
@@ -47,7 +47,7 @@ add_llvm_component_library(LLVMipo
   omp_gen
 
   COMPONENT_NAME
-  ipo
+  IPO
 
   LINK_COMPONENTS
   AggressiveInstCombine