https://github.com/frasercrmck created https://github.com/llvm/llvm-project/pull/86965
This commit fixes the problem of missing build dependencies between libclc source files and their various includes (namely headers and .inc files). We would like to do this with compiler-generated dependency files because then the dependencies are accurate and there are no false positives, leading to unnecessary rebuilds. This is how regular C/C++ dependencies are usually tracked by CMake. Note that this variable is an internal API so is not guaranteed to work, but then again *all* of CMake's support for new languages (which we use for CLC/LL languages) is an internal API. On balance this change is probably worth it due to how minimally invasive it is. It should work with all supported compilers and CMake generators. >From 9dfb66dc1be0652fef199b51754fe017d330c43c Mon Sep 17 00:00:00 2001 From: Fraser Cormack <fra...@codeplay.com> Date: Thu, 28 Mar 2024 15:43:29 +0000 Subject: [PATCH] [libclc] Track dependencies through dependency files This commit fixes the problem of missing build dependencies between libclc source files and their various includes (namely headers and .inc files). We would like to do this with compiler-generated dependency files because then the dependencies are accurate and there are no false positives, leading to unnecessary rebuilds. This is how regular C/C++ dependencies are usually tracked by CMake. Note that this variable is an internal API so is not guaranteed to work, but then again *all* of CMake's support for new languages (which we use for CLC/LL languages) is an internal API. On balance this change is probably worth it due to how minimally invasive it is. It should work with all supported compilers and CMake generators. --- libclc/cmake/CMakeCLCInformation.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/libclc/cmake/CMakeCLCInformation.cmake b/libclc/cmake/CMakeCLCInformation.cmake index 6eecf4edf0e7bb..95327e44397222 100644 --- a/libclc/cmake/CMakeCLCInformation.cmake +++ b/libclc/cmake/CMakeCLCInformation.cmake @@ -9,3 +9,4 @@ if(NOT CMAKE_CLC_CREATE_STATIC_LIBRARY) endif() set(CMAKE_INCLUDE_FLAG_CLC "-I") +set(CMAKE_DEPFILE_FLAGS_CLC "-MD -MT <DEP_TARGET> -MF <DEP_FILE>") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits