Reorganize toolchain files
This commit is contained in:
@@ -7,14 +7,13 @@ Reference: https://zig.news/kristoff/cross-compile-a-c-c-project-with-zig-3599
|
||||
## Building
|
||||
|
||||
- [Install zig](https://ziglang.org/learn/getting-started/#installing-zig) in your PATH (`choco install zig` on Windows)
|
||||
- `cmake -B build-aarch64 -G Ninja -DCMAKE_TOOLCHAIN_FILE=cmake/zig-toolchain-aarch64.cmake`
|
||||
- `cmake -B build-aarch64 -G Ninja --toolchain aarch64-linux-gnu.cmake`
|
||||
- `cmake --build build-arch64`
|
||||
|
||||
You can create toolchains for other triples like this. Here is an example to build for Windows on ARM64:
|
||||
You can create toolchains for other triples as well, just create a file named `aarch64-windows-gnu.cmake` with the following contents to build for Windows on ARM64:
|
||||
|
||||
```cmake
|
||||
set(ZIG_TARGET "aarch64-windows-gnu")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
```
|
||||
|
||||
## clangd
|
||||
|
||||
1
aarch64-linux-gnu.cmake
Normal file
1
aarch64-linux-gnu.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
1
aarch64-windows-gnu.cmake
Normal file
1
aarch64-windows-gnu.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
@@ -1,2 +0,0 @@
|
||||
set(ZIG_TARGET "aarch64-linux-gnu")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
@@ -1,2 +0,0 @@
|
||||
set(ZIG_TARGET "riscv64-freestanding-none")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
@@ -1,2 +0,0 @@
|
||||
set(ZIG_TARGET "x86_64-uefi-gnu")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
@@ -1,2 +0,0 @@
|
||||
set(ZIG_TARGET "x86_64-windows-gnu")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
@@ -1,2 +0,0 @@
|
||||
set(ZIG_TARGET "aarch64-windows-gnu")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/zig-toolchain.cmake)
|
||||
@@ -4,8 +4,16 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
message(FATAL_ERROR "Visual Studio generator not supported, use: cmake -G Ninja")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED ZIG_TARGET)
|
||||
get_filename_component(PARENT_LIST_DIR "${CMAKE_PARENT_LIST_FILE}" DIRECTORY)
|
||||
string(FIND "${CMAKE_CURRENT_LIST_DIR}" "${PARENT_LIST_DIR}" POS)
|
||||
if(POS EQUAL 0)
|
||||
get_filename_component(ZIG_TARGET "${CMAKE_PARENT_LIST_FILE}" NAME_WE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ZIG_TARGET MATCHES "^([a-zZ-Z0-9_]+)-([a-zZ-Z0-9_]+)-([a-zZ-Z0-9_]+)$")
|
||||
message(FATAL_ERROR "Expected -DZIG_TARGET=<arch>-<os>-<abi>")
|
||||
message(FATAL_ERROR "Expected ZIG_TARGET=<arch>-<os>-<abi>")
|
||||
endif()
|
||||
|
||||
set(ZIG_ARCH ${CMAKE_MATCH_1})
|
||||
|
||||
1
riscv64-freestanding-none.cmake
Normal file
1
riscv64-freestanding-none.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
1
x86_64-linux-gnu.cmake
Normal file
1
x86_64-linux-gnu.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
1
x86_64-linux-musl.cmake
Normal file
1
x86_64-linux-musl.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
1
x86_64-uefi-gnu.cmake
Normal file
1
x86_64-uefi-gnu.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
1
x86_64-windows-gnu.cmake
Normal file
1
x86_64-windows-gnu.cmake
Normal file
@@ -0,0 +1 @@
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/zig-toolchain.cmake)
|
||||
23815
zig-targets.json
Normal file
23815
zig-targets.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user