apache / tvm

Open deep learning compiler stack for cpu, gpu and specialized accelerators
https://tvm.apache.org/
Apache License 2.0
11.42k stars 3.4k forks source link

[CMake] Show NVCC include directories in compile_commands.json #17079

Closed Lunderberg closed 4 weeks ago

Lunderberg commented 1 month ago

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 the CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES variable, to avoid this issue.

[0] https://github.com/Kitware/CMake/commit/6377a438