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

0
cmake/zig-ar.sh → cmake/zig-ar Executable file → Normal file
View File

2
cmake/zig-c++ Normal file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
zig c++ "$@"

2
cmake/zig-c++.cmd Normal file
View File

@@ -0,0 +1,2 @@
@echo off
zig c++ %*

2
cmake/zig-cc Normal file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
zig cc "$@"

2
cmake/zig-cc.cmd Normal file
View File

@@ -0,0 +1,2 @@
@echo off
zig cc %*

0
cmake/zig-ranlib.sh → cmake/zig-ranlib Executable file → Normal file
View File

0
cmake/zig-rc.sh → cmake/zig-rc Executable file → Normal file
View File

View File

@@ -1,2 +1,2 @@
set(ZIG_TARGET "riscv64-freestanding-none")
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
set(ZIG_TARGET "riscv64-freestanding-none")
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)

View File

@@ -33,15 +33,16 @@ endif()
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR ${ZIG_ARCH})
set(CMAKE_C_COMPILER "zig" cc -target ${ZIG_TARGET})
set(CMAKE_CXX_COMPILER "zig" c++ -target ${ZIG_TARGET})
if(WIN32)
if(CMAKE_HOST_WIN32)
set(SCRIPT_SUFFIX ".cmd")
else()
set(SCRIPT_SUFFIX ".sh")
set(SCRIPT_SUFFIX "")
endif()
# Work around a bug in clangd where 'c++' is reordered on the command line
set(CMAKE_C_COMPILER "${CMAKE_CURRENT_LIST_DIR}/zig-cc${SCRIPT_SUFFIX}" -target ${ZIG_TARGET})
set(CMAKE_CXX_COMPILER "${CMAKE_CURRENT_LIST_DIR}/zig-c++${SCRIPT_SUFFIX}" -target ${ZIG_TARGET})
# This is working (thanks to Simon for finding this trick)
set(CMAKE_AR "${CMAKE_CURRENT_LIST_DIR}/zig-ar${SCRIPT_SUFFIX}")
set(CMAKE_RANLIB "${CMAKE_CURRENT_LIST_DIR}/zig-ranlib${SCRIPT_SUFFIX}")