[clang] [CMake] Link MLIR if CLANG_ENABLE_CIR is ON (PR #226763)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 28 13:58:03 PDT 2026
================
@@ -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)
----------------
aokblast wrote:
> > That means the extenal project should never use it as it is not explicitly specified in the LLVM_ENABLE_PROJECT
>
> I don't quite follow what you mean: the whole reason why the project is added implicitly is so that clang can use it. And it'll actually need to link to it regardless of if it is implicit or not.
I think I didn't explain this clearly.
`LLVM_DEPENDENCY_ONLY_PROJECTS` does not generate `MLIRTargets.cmake`, so I don't think MLIR should be specified there. Instead, `ClangTargets.cmake` adds these libraries as static imported targets:
```cmake
add_library(MLIRCIRAnalysis STATIC IMPORTED)
set_target_properties(MLIRCIRAnalysis PROPERTIES
INTERFACE_LINK_LIBRARIES "MLIRCIR;MLIRIR;MLIRAnalysis;MLIRSideEffectInterfaces"
)
```
If `LLVM_ENABLE_PROJECTS` does not include `mlir`, wouldn't this mean that we don't need to use `find_package(MLIR)` at all? `ClangTargets.cmake` already provides the imported MLIR targets.
https://github.com/llvm/llvm-project/pull/226763
More information about the cfe-commits
mailing list