[libclc] 688d71e - [libclc] Track dependencies through dependency files (#86965)

via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 28 13:29:29 PDT 2024


Author: Fraser Cormack
Date: 2024-03-28T20:29:25Z
New Revision: 688d71ea8817ace88955671c1af7c80fbfba2c7f

URL: https://github.com/llvm/llvm-project/commit/688d71ea8817ace88955671c1af7c80fbfba2c7f
DIFF: https://github.com/llvm/llvm-project/commit/688d71ea8817ace88955671c1af7c80fbfba2c7f.diff

LOG: [libclc] Track dependencies through dependency files (#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.

Added: 
    

Modified: 
    libclc/cmake/CMakeCLCInformation.cmake

Removed: 
    


################################################################################
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>")


        


More information about the cfe-commits mailing list