[llvm] 95537f4 - llvmbuildectomy - compatibility with ocaml bindings

via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 13 05:36:06 PST 2020


Author: serge-sans-paille
Date: 2020-11-13T14:35:52+01:00
New Revision: 95537f450814c378fcb9d446dadcabc1385a5903

URL: https://github.com/llvm/llvm-project/commit/95537f450814c378fcb9d446dadcabc1385a5903
DIFF: https://github.com/llvm/llvm-project/commit/95537f450814c378fcb9d446dadcabc1385a5903.diff

LOG: llvmbuildectomy - compatibility with ocaml bindings

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.

Added: 
    

Modified: 
    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

Removed: 
    


################################################################################
diff  --git a/llvm/bindings/ocaml/analysis/CMakeLists.txt b/llvm/bindings/ocaml/analysis/CMakeLists.txt
index f8ca84ddbe33..5eb04b66a724 100644
--- a/llvm/bindings/ocaml/analysis/CMakeLists.txt
+++ b/llvm/bindings/ocaml/analysis/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_analysis
   OCAML    llvm_analysis
   OCAMLDEP llvm
   C        analysis_ocaml
-  LLVM     analysis)
+  LLVM     Analysis)

diff  --git a/llvm/bindings/ocaml/bitreader/CMakeLists.txt b/llvm/bindings/ocaml/bitreader/CMakeLists.txt
index 8d1610320e0e..d71f51c28b45 100644
--- a/llvm/bindings/ocaml/bitreader/CMakeLists.txt
+++ b/llvm/bindings/ocaml/bitreader/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_bitreader
   OCAML    llvm_bitreader
   OCAMLDEP llvm
   C        bitreader_ocaml
-  LLVM     bitreader)
+  LLVM     BitReader)

diff  --git a/llvm/bindings/ocaml/bitwriter/CMakeLists.txt b/llvm/bindings/ocaml/bitwriter/CMakeLists.txt
index 5a14498cb07e..6462d65c8669 100644
--- a/llvm/bindings/ocaml/bitwriter/CMakeLists.txt
+++ b/llvm/bindings/ocaml/bitwriter/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_bitwriter
   OCAML    llvm_bitwriter
   OCAMLDEP llvm
   C        bitwriter_ocaml
-  LLVM     bitwriter)
+  LLVM     BitWriter)

diff  --git a/llvm/bindings/ocaml/executionengine/CMakeLists.txt b/llvm/bindings/ocaml/executionengine/CMakeLists.txt
index ae9af088c025..0b1428aac1b8 100644
--- a/llvm/bindings/ocaml/executionengine/CMakeLists.txt
+++ b/llvm/bindings/ocaml/executionengine/CMakeLists.txt
@@ -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)

diff  --git a/llvm/bindings/ocaml/irreader/CMakeLists.txt b/llvm/bindings/ocaml/irreader/CMakeLists.txt
index 87d269b48c7a..5654b1803409 100644
--- a/llvm/bindings/ocaml/irreader/CMakeLists.txt
+++ b/llvm/bindings/ocaml/irreader/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_irreader
   OCAML    llvm_irreader
   OCAMLDEP llvm
   C        irreader_ocaml
-  LLVM     irreader)
+  LLVM     IRReader)

diff  --git a/llvm/bindings/ocaml/linker/CMakeLists.txt b/llvm/bindings/ocaml/linker/CMakeLists.txt
index b6bc8ac1e830..3bb367225784 100644
--- a/llvm/bindings/ocaml/linker/CMakeLists.txt
+++ b/llvm/bindings/ocaml/linker/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_linker
   OCAML    llvm_linker
   OCAMLDEP llvm
   C        linker_ocaml
-  LLVM     linker)
+  LLVM     Linker)

diff  --git a/llvm/bindings/ocaml/llvm/CMakeLists.txt b/llvm/bindings/ocaml/llvm/CMakeLists.txt
index db7aee2adff9..99ef1cbff233 100644
--- a/llvm/bindings/ocaml/llvm/CMakeLists.txt
+++ b/llvm/bindings/ocaml/llvm/CMakeLists.txt
@@ -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"

diff  --git a/llvm/bindings/ocaml/target/CMakeLists.txt b/llvm/bindings/ocaml/target/CMakeLists.txt
index adee0fcec659..6e01a27a200b 100644
--- a/llvm/bindings/ocaml/target/CMakeLists.txt
+++ b/llvm/bindings/ocaml/target/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_target
   OCAML    llvm_target
   OCAMLDEP llvm
   C        target_ocaml
-  LLVM     target)
+  LLVM     Target)

diff  --git a/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt b/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt
index 98c7c6861d2b..d680b02046c6 100644
--- a/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt
+++ b/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_scalar_opts
   OCAML    llvm_scalar_opts
   OCAMLDEP llvm
   C        scalar_opts_ocaml
-  LLVM     scalaropts)
+  LLVM     Scalar)

diff  --git a/llvm/bindings/ocaml/transforms/utils/CMakeLists.txt b/llvm/bindings/ocaml/transforms/utils/CMakeLists.txt
index 37f3eb7d8eca..920ed793bced 100644
--- a/llvm/bindings/ocaml/transforms/utils/CMakeLists.txt
+++ b/llvm/bindings/ocaml/transforms/utils/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_transform_utils
   OCAML    llvm_transform_utils
   OCAMLDEP llvm
   C        transform_utils_ocaml
-  LLVM     transformutils)
+  LLVM     TransformUtils)

diff  --git a/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt b/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt
index af0ffce563f6..47af23928ccb 100644
--- a/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt
+++ b/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt
@@ -2,4 +2,4 @@ add_ocaml_library(llvm_vectorize
   OCAML    llvm_vectorize
   OCAMLDEP llvm
   C        vectorize_ocaml
-  LLVM     vectorize)
+  LLVM     Vectorize)

diff  --git a/llvm/cmake/modules/LLVM-Config.cmake b/llvm/cmake/modules/LLVM-Config.cmake
index 5a79fc10552e..ebe13e7fc31c 100644
--- a/llvm/cmake/modules/LLVM-Config.cmake
+++ b/llvm/cmake/modules/LLVM-Config.cmake
@@ -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()

diff  --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
index a5117493bc4e..ac6aecc2abdf 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -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
 -------------------
 

diff  --git a/llvm/lib/Transforms/IPO/CMakeLists.txt b/llvm/lib/Transforms/IPO/CMakeLists.txt
index c391454c5528..4874f7224fd2 100644
--- a/llvm/lib/Transforms/IPO/CMakeLists.txt
+++ b/llvm/lib/Transforms/IPO/CMakeLists.txt
@@ -47,7 +47,7 @@ add_llvm_component_library(LLVMipo
   omp_gen
 
   COMPONENT_NAME
-  ipo
+  IPO
 
   LINK_COMPONENTS
   AggressiveInstCombine


        


More information about the llvm-commits mailing list