https://github.com/joker-eph created https://github.com/llvm/llvm-project/pull/221739
ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR explicitly in LLVM_ENABLE_PROJECTS. That also attaches all MLIR build, install, unit-test, and lit targets to the corresponding LLVM aggregates. When Clang is selected and CLANG_ENABLE_CIR is enabled, record MLIR in LLVM_DEPENDENCY_ONLY_PROJECTS unless it is already available. This configures the MLIR targets used by CIR without changing LLVM_ENABLE_PROJECTS or enabling MLIR's aggregate targets. Keep explicit MLIR selections unchanged and retain the existing standalone ClangIR restriction. Clang builds with CIR disabled continue to omit MLIR. Assisted-by: Codex >From 538acace3b8e25b25855ac64ae76c176bcd95fae Mon Sep 17 00:00:00 2001 From: Mehdi Amini <[email protected]> Date: Mon, 7 Sep 2026 06:38:37 -0700 Subject: [PATCH] [CIR][CMake] Configure MLIR as a dependency-only project ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR explicitly in LLVM_ENABLE_PROJECTS. That also attaches all MLIR build, install, unit-test, and lit targets to the corresponding LLVM aggregates. When Clang is selected and CLANG_ENABLE_CIR is enabled, record MLIR in LLVM_DEPENDENCY_ONLY_PROJECTS unless it is already available. This configures the MLIR targets used by CIR without changing LLVM_ENABLE_PROJECTS or enabling MLIR's aggregate targets. Keep explicit MLIR selections unchanged and retain the existing standalone ClangIR restriction. Clang builds with CIR disabled continue to omit MLIR. Assisted-by: Codex --- clang/CMakeLists.txt | 5 +++-- llvm/CMakeLists.txt | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index fc71cf45dbb34..9ca77a33c21c2 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -195,9 +195,10 @@ if(CLANG_ENABLE_CIR) message(FATAL_ERROR "ClangIR is not yet supported in the standalone build.") endif() - if (NOT "${LLVM_ENABLE_PROJECTS}" MATCHES "MLIR|mlir") + if (NOT "mlir" IN_LIST LLVM_ENABLE_PROJECTS AND + NOT "mlir" IN_LIST LLVM_DEPENDENCY_ONLY_PROJECTS) message(FATAL_ERROR - "Cannot build ClangIR without MLIR in LLVM_ENABLE_PROJECTS") + "Cannot build ClangIR without MLIR enabled") endif() endif() diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 5552a61466f6d..3c8ae556b387f 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -205,6 +205,13 @@ if ("flang" IN_LIST LLVM_ENABLE_PROJECTS) endif () endif() +if (CLANG_ENABLE_CIR AND "clang" IN_LIST LLVM_ENABLE_PROJECTS AND + NOT "mlir" IN_LIST LLVM_ENABLE_PROJECTS AND + NOT "mlir" IN_LIST LLVM_DEPENDENCY_ONLY_PROJECTS) + message(STATUS "Enabling MLIR as a dependency to ClangIR") + list(APPEND LLVM_DEPENDENCY_ONLY_PROJECTS "mlir") +endif() + if ("lldb" IN_LIST LLVM_ENABLE_PROJECTS) if (NOT "clang" IN_LIST LLVM_ENABLE_PROJECTS) message(STATUS "Enabling clang as a dependency of lldb") _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
