Files
clang-p2996/libclc/cmake/CMakeCLCInformation.cmake
Fraser Cormack 688d71ea88 [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.
2024-03-28 20:29:25 +00:00

13 lines
401 B
CMake

if(NOT CMAKE_CLC_COMPILE_OBJECT)
set(CMAKE_CLC_COMPILE_OBJECT
"<CMAKE_CLC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE> -emit-llvm")
endif()
if(NOT CMAKE_CLC_CREATE_STATIC_LIBRARY)
set(CMAKE_CLC_CREATE_STATIC_LIBRARY
"<CMAKE_CLC_ARCHIVE> -o <TARGET> <OBJECTS>")
endif()
set(CMAKE_INCLUDE_FLAG_CLC "-I")
set(CMAKE_DEPFILE_FLAGS_CLC "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")