[CMake] Show NVCC include directories in compile_commands.json #17079
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As of cmake 3.29.5 [0], if the NVCC version is 11 or higher, cmake will generate a "options-file.rsp" containing the -I flags for include directories, rather than providing them on the command-line. This setting exists to work around the short command-line length limits on Windows, but is enabled on all platforms. If set, because include directories are not part of the
compile_commands.json
, the clangd LSP cannot find the include files.Furthermore, this override cannot be specified in a user's
config.cmake
for TVM, because it must be set after CMake's built-in CUDA support.This commit updates TVM's
CUDA.cmake
to override theCMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES
variable, to avoid this issue.[0] Kitware/CMake@6377a438