From 3ea180aac6e4188e33b6eb313880e6af29072fd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20B=C3=B6ck?= Date: Tue, 8 Jul 2025 14:48:35 +0200 Subject: [PATCH] [mlir][cmake] Fix missing entries in `tablegen_compile_commands.yml` 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 --- llvm/cmake/modules/TableGen.cmake | 12 ++++++++---- mlir/cmake/modules/AddMLIR.cmake | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) 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)