Skip to content

Commit d2f81e1

Browse files
authored
Merge pull request #989 from swiftwasm/maxd/cmake-toolchain
Add CMake toolchain for cross-compiling Swift
2 parents 5de0615 + 7f2a4c4 commit d2f81e1

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
set(CMAKE_SYSTEM_NAME Generic)
2+
set(CMAKE_SYSTEM_VERSION 1)
3+
set(CMAKE_SYSTEM_PROCESSOR wasm32)
4+
set(triple wasm32-unknown-wasi)
5+
6+
set(WASI_SDK_PREFIX "${SWIFT_SOURCE_PREFIX}/wasi-sdk")
7+
8+
set(CMAKE_C_COMPILER ${WASI_SDK_PREFIX}/bin/clang)
9+
set(CMAKE_CXX_COMPILER ${WASI_SDK_PREFIX}/bin/clang++)
10+
set(CMAKE_AR ${WASI_SDK_PREFIX}/bin/llvm-ar CACHE STRING "wasi-sdk build")
11+
set(CMAKE_RANLIB ${WASI_SDK_PREFIX}/bin/llvm-ranlib CACHE STRING "wasi-sdk build")
12+
set(CMAKE_C_COMPILER_TARGET ${triple} CACHE STRING "wasi-sdk build")
13+
set(CMAKE_CXX_COMPILER_TARGET ${triple} CACHE STRING "wasi-sdk build")
14+
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-threads" CACHE STRING "wasi-sdk build")
15+
16+
set(CMAKE_SYSROOT ${WASI_SDK_PREFIX}/share/wasi-sysroot CACHE STRING "wasi-sdk build")
17+
set(CMAKE_STAGING_PREFIX ${WASI_SDK_PREFIX}/share/wasi-sysroot CACHE STRING "wasi-sdk build")
18+
19+
# Don't look in the sysroot for executables to run during the build
20+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
21+
# Only look in the sysroot (not in the host paths) for the rest
22+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
23+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
24+
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER)
25+
26+
# Some other hacks
27+
set(CMAKE_C_COMPILER_WORKS ON)
28+
set(CMAKE_CXX_COMPILER_WORKS ON)

0 commit comments

Comments
 (0)