Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged

Conversation

Lunderberg
Copy link
Contributor

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] Kitware/CMake@6377a438

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] Kitware/CMake@6377a438
@vinx13 vinx13 merged commit eb4f41c into apache:main Jun 12, 2024
19 checks passed
@Lunderberg Lunderberg deleted the cmake_disable_response_file_for_nvcc_includes branch June 13, 2024 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants