llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: aokblast

<details>
<summary>Changes</summary>

CIR requires MLIR to build. However, MLIR doesn't have a separate config file; 
it dependencies are checked by ClangTarget.cmake without linking the MLIR 
library. Link against MLIR in ClangCOnfig.cmake when CIR is enabled.

---
Full diff: https://github.com/llvm/llvm-project/pull/226763.diff


2 Files Affected:

- (modified) clang/cmake/modules/CMakeLists.txt (+19) 
- (modified) clang/cmake/modules/ClangConfig.cmake.in (+2) 


``````````diff
diff --git a/clang/cmake/modules/CMakeLists.txt 
b/clang/cmake/modules/CMakeLists.txt
index 36f31e33cf60d..c9b2cde27cd96 100644
--- a/clang/cmake/modules/CMakeLists.txt
+++ b/clang/cmake/modules/CMakeLists.txt
@@ -43,6 +43,20 @@ set(CLANG_CONFIG_INCLUDE_DIRS
   "${CLANG_SOURCE_DIR}/include"
   "${CLANG_BINARY_DIR}/include"
   )
+set(clang_config_needs_mlir OFF)
+if(CLANG_ENABLE_CIR AND NOT "mlir" IN_LIST LLVM_DEPENDENCY_ONLY_PROJECTS)
+  set(clang_config_needs_mlir ON)
+endif()
+function(clang_config_find_mlir out_var mlir_cmake_dir)
+  if(clang_config_needs_mlir)
+    set(${out_var}
+      "find_package(MLIR 
\${LLVM_VERSION_MAJOR}.\${LLVM_VERSION_MINOR}.\${LLVM_VERSION_PATCH} EXACT 
REQUIRED CONFIG
+             HINTS \"${mlir_cmake_dir}\")" PARENT_SCOPE)
+  else()
+    set(${out_var} "" PARENT_SCOPE)
+  endif()
+endfunction()
+clang_config_find_mlir(CLANG_CONFIG_FIND_MLIR "${llvm_builddir}/cmake/mlir")
 configure_file(
   ${CMAKE_CURRENT_SOURCE_DIR}/ClangConfig.cmake.in
   ${clang_cmake_builddir}/ClangConfig.cmake
@@ -69,6 +83,11 @@ file(COPY .
 find_prefix_from_config(CLANG_CONFIG_CODE CLANG_INSTALL_PREFIX 
"${CLANG_INSTALL_PACKAGE_DIR}")
 extend_path(CLANG_CONFIG_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}" 
"${CLANG_INSTALL_PACKAGE_DIR}")
 extend_path(CLANG_CONFIG_LLVM_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}" 
"${LLVM_INSTALL_PACKAGE_DIR}")
+# Keep this in sync with mlir/cmake/modules/CMakeLists.txt!
+set(MLIR_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/mlir" CACHE STRING
+  "Path for CMake subdirectory for MLIR (defaults to 
'${CMAKE_INSTALL_PACKAGEDIR}/mlir')")
+extend_path(clang_config_mlir_cmake_dir "\${CLANG_INSTALL_PREFIX}" 
"${MLIR_INSTALL_PACKAGE_DIR}")
+clang_config_find_mlir(CLANG_CONFIG_FIND_MLIR "${clang_config_mlir_cmake_dir}")
 get_config_exports_includes(Clang CLANG_CONFIG_INCLUDE_EXPORTS)
 extend_path(base_includedir "\${CLANG_INSTALL_PREFIX}" 
"${CMAKE_INSTALL_INCLUDEDIR}")
 set(CLANG_CONFIG_INCLUDE_DIRS
diff --git a/clang/cmake/modules/ClangConfig.cmake.in 
b/clang/cmake/modules/ClangConfig.cmake.in
index fd0ff76f1e883..87fab90dcd5e0 100644
--- a/clang/cmake/modules/ClangConfig.cmake.in
+++ b/clang/cmake/modules/ClangConfig.cmake.in
@@ -6,6 +6,8 @@ set(LLVM_VERSION 
@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@.@LLVM_VERSION_PATCH@)
 find_package(LLVM ${LLVM_VERSION} EXACT REQUIRED CONFIG
              HINTS "@CLANG_CONFIG_LLVM_CMAKE_DIR@")
 
+@CLANG_CONFIG_FIND_MLIR@
+
 set(CLANG_EXPORTED_TARGETS "@CLANG_EXPORTS@")
 set(CLANG_CMAKE_DIR "@CLANG_CONFIG_CMAKE_DIR@")
 set(CLANG_INCLUDE_DIRS "@CLANG_CONFIG_INCLUDE_DIRS@")

``````````

</details>


https://github.com/llvm/llvm-project/pull/226763
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to