Add wrappers for 'zig c++' to work around clangd

This commit is contained in:
Duncan Ogilvie
2024-12-03 15:22:25 +01:00
parent 80b6c1a4f3
commit 56b384c966
10 changed files with 35 additions and 7 deletions

View File

@@ -16,3 +16,22 @@ You can create toolchains for other triples like this. Here is an example to bui
set(ZIG_TARGET "aarch64-windows-gnu")
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
```
## clangd
To get [clangd](https://clangd.llvm.org/) to work you need to first enable generation of `compile_commands.json`:
```sh
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
```
Additionally you need to pass pass the following arguments to `clangd`:
```json
"clangd.arguments": [
"--log=verbose",
"--query-driver=*/clang-cl.exe,*/zig-cc.*,*/zig-c++.*,*/em++.bat,*/emcc.bat,*/em++,*/emcc",
]
```
Without these arguments `clangd` will not query the driver (`zig c++`) and the include paths will not be resolved correctly.