[clang] [clang] Only build clang-tblgen if it is actually needed (PR #161952)
Ross Burton via cfe-commits
cfe-commits at lists.llvm.org
Sat Oct 4 03:07:09 PDT 2025
https://github.com/rossburton created https://github.com/llvm/llvm-project/pull/161952
It's possible to build clang with an existing clang-tblgen (common when cross-compiling, for instance) by setting CLANG_TABLEGEN_EXE. If this is the case there's no need to build it, as it won't be used.
>From edbcf9a49d7770cfcd9ac950deb6884e6de712a8 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton at arm.com>
Date: Fri, 3 Oct 2025 20:34:02 +0100
Subject: [PATCH] [clang] Only build clang-tblgen if it is actually needed
It's possible to build clang with an existing clang-tblgen (common when
cross-compiling, for instance) by setting CLANG_TABLEGEN_EXE. If this
is the case there's no need to build it, as it won't be used.
---
clang/utils/TableGen/CMakeLists.txt | 61 +++++++++++++++--------------
1 file changed, 32 insertions(+), 29 deletions(-)
diff --git a/clang/utils/TableGen/CMakeLists.txt b/clang/utils/TableGen/CMakeLists.txt
index 14f13824e9575..20a7b88ecdbee 100644
--- a/clang/utils/TableGen/CMakeLists.txt
+++ b/clang/utils/TableGen/CMakeLists.txt
@@ -1,31 +1,34 @@
-set(LLVM_LINK_COMPONENTS Support)
+# We only need to build clang-tblgen if we haven't been told to use an existing binary.
+if (NOT DEFINED CLANG_TABLEGEN_EXE)
+ set(LLVM_LINK_COMPONENTS Support)
-add_tablegen(clang-tblgen CLANG
- DESTINATION "${CLANG_TOOLS_INSTALL_DIR}"
- EXPORT Clang
- ASTTableGen.cpp
- CIRLoweringEmitter.cpp
- ClangASTNodesEmitter.cpp
- ClangASTPropertiesEmitter.cpp
- ClangAttrEmitter.cpp
- ClangBuiltinsEmitter.cpp
- ClangBuiltinTemplatesEmitter.cpp
- ClangCommentCommandInfoEmitter.cpp
- ClangCommentHTMLNamedCharacterReferenceEmitter.cpp
- ClangCommentHTMLTagsEmitter.cpp
- ClangDataCollectorsEmitter.cpp
- ClangDiagnosticsEmitter.cpp
- ClangOpcodesEmitter.cpp
- ClangOpenCLBuiltinEmitter.cpp
- ClangOptionDocEmitter.cpp
- ClangSACheckersEmitter.cpp
- ClangSyntaxEmitter.cpp
- ClangTypeNodesEmitter.cpp
- MveEmitter.cpp
- NeonEmitter.cpp
- RISCVVEmitter.cpp
- SveEmitter.cpp
- TableGen.cpp
- )
+ add_tablegen(clang-tblgen CLANG
+ DESTINATION "${CLANG_TOOLS_INSTALL_DIR}"
+ EXPORT Clang
+ ASTTableGen.cpp
+ CIRLoweringEmitter.cpp
+ ClangASTNodesEmitter.cpp
+ ClangASTPropertiesEmitter.cpp
+ ClangAttrEmitter.cpp
+ ClangBuiltinsEmitter.cpp
+ ClangBuiltinTemplatesEmitter.cpp
+ ClangCommentCommandInfoEmitter.cpp
+ ClangCommentHTMLNamedCharacterReferenceEmitter.cpp
+ ClangCommentHTMLTagsEmitter.cpp
+ ClangDataCollectorsEmitter.cpp
+ ClangDiagnosticsEmitter.cpp
+ ClangOpcodesEmitter.cpp
+ ClangOpenCLBuiltinEmitter.cpp
+ ClangOptionDocEmitter.cpp
+ ClangSACheckersEmitter.cpp
+ ClangSyntaxEmitter.cpp
+ ClangTypeNodesEmitter.cpp
+ MveEmitter.cpp
+ NeonEmitter.cpp
+ RISCVVEmitter.cpp
+ SveEmitter.cpp
+ TableGen.cpp
+ )
-target_link_libraries(clang-tblgen PRIVATE clangSupport_tablegen)
+ target_link_libraries(clang-tblgen PRIVATE clangSupport_tablegen)
+endif()
More information about the cfe-commits
mailing list