[Mlir-commits] [mlir] 136558b - [mlir][cmake] Fix missing entries in `tablegen_compile_commands.yml` (#147516)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Jul 11 13:25:20 PDT 2025


Author: Markus Böck
Date: 2025-07-11T22:25:16+02:00
New Revision: 136558bab23af94fd23b9b8ce39632085b21a4ca

URL: https://github.com/llvm/llvm-project/commit/136558bab23af94fd23b9b8ce39632085b21a4ca
DIFF: https://github.com/llvm/llvm-project/commit/136558bab23af94fd23b9b8ce39632085b21a4ca.diff

LOG: [mlir][cmake] Fix missing entries in `tablegen_compile_commands.yml` (#147516)

Depending on the order of CMake includes the
`tablegen_compile_commands.yml` was previously missing entries due to
being deleted after a `tablegen` commands.

This PR fixes this by 1) making sure `AddMLIR` includes `TableGen` such
that new compile commands are added to a fresh YML file and 2) using an
include guard to ensure the file is cleared exactly once

Added: 
    

Modified: 
    llvm/cmake/modules/TableGen.cmake
    mlir/cmake/modules/AddMLIR.cmake

Removed: 
    


################################################################################
diff  --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
index 67a628d4953c3..9a2e73a1e3718 100644
--- a/llvm/cmake/modules/TableGen.cmake
+++ b/llvm/cmake/modules/TableGen.cmake
@@ -4,10 +4,6 @@
 # Adds the name of the generated file to TABLEGEN_OUTPUT.
 include(LLVMDistributionSupport)
 
-# Clear out any pre-existing compile_commands file before processing. This
-# allows for generating a clean compile_commands on each configure.
-file(REMOVE ${CMAKE_BINARY_DIR}/tablegen_compile_commands.yml)
-
 function(tablegen project ofn)
   cmake_parse_arguments(ARG "" "" "DEPENDS;EXTRA_INCLUDES" ${ARGN})
 
@@ -250,3 +246,11 @@ macro(add_tablegen target project)
     set_property(GLOBAL APPEND PROPERTY ${export_upper}_EXPORTS ${target})
   endif()
 endmacro()
+
+# Make sure 'tablegen_compile_commands.yml' is only deleted once the very
+# first time this file is included.
+include_guard(GLOBAL)
+
+# Clear out any pre-existing compile_commands file before processing. This
+# allows for generating a clean compile_commands on each configure.
+file(REMOVE ${CMAKE_BINARY_DIR}/tablegen_compile_commands.yml)

diff  --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 353e64b3d013e..ff4269ed7acd2 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -1,3 +1,4 @@
+include(TableGen)
 include(GNUInstallDirs)
 include(LLVMDistributionSupport)
 


        


More information about the Mlir-commits mailing list