Skip to content

Commit 889abed

Browse files
committed
glib-emsdk, wasi sdk fetch
1 parent 46a0a82 commit 889abed

File tree

2 files changed

+133
-0
lines changed

2 files changed

+133
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+

wasisdk/share/cmake/wasi-sdk.cmake

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# Cmake toolchain description file for the Makefile
2+
set(CMAKE_SYSTEM_NAME WASI)
3+
set(CMAKE_SYSTEM_VERSION 1)
4+
set(CMAKE_SYSTEM_PROCESSOR wasm32)
5+
set(triple wasm32-wasi)
6+
7+
# This is arbitrary
8+
cmake_minimum_required(VERSION 3.5.0)
9+
10+
set(WASI True)
11+
set(CMAKE_CROSSCOMPILING TRUE)
12+
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
13+
option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
14+
15+
set_property(GLOBAL PROPERTY CXX_EXCEPTIONS OFF)
16+
set_property(GLOBAL PROPERTY CXX_RTTI OFF)
17+
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
18+
set(COMPILER_SUPPORTS_FEXCEPTIONS FALSE)
19+
20+
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -fno-exceptions")
21+
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -fno-exceptions")
22+
#add_compile_options(-fpic)
23+
#add_compile_options(-fno-exceptions)
24+
25+
26+
set(WASI_SDK_PREFIX ${WASI_SDK_PREFIX})
27+
28+
# Make HandleLLVMOptions.cmake happy.
29+
# TODO(sbc): We should probably fix llvm or libcxxabi instead.
30+
# See: https://reviews.llvm.org/D33753
31+
# set(UNIX 1)
32+
33+
set(ENV{PKG_CONFIG_PATH} ${WASI_SDK_PREFIX}/share/wasi-sysroot/lib/wasm32-wasi/pkgconfig)
34+
35+
36+
set(ZLIB_FOUND YES)
37+
set(ZLIB_INCLUDE_DIR ${WASI_SDK_PREFIX}/share/wasi-sysroot/include)
38+
39+
set(ZLIB_LIBRARY ${WASI_SDK_PREFIX}/share/wasi-sysroot/lib/wasm32-wasi/libz.a)
40+
41+
set(PNG_PNG_INCLUDE_DIR ${WASI_SDK_PREFIX}/share/wasi-sysroot/include)
42+
set(PNG_LIBRARY ${WASI_SDK_PREFIX}/share/wasi-sysroot/lib/wasm32-wasi/libpng.a)
43+
44+
45+
46+
if(WIN32)
47+
set(WASI_HOST_EXE_SUFFIX ".exe")
48+
else()
49+
set(WASI_HOST_EXE_SUFFIX "")
50+
endif()
51+
52+
# lock those
53+
set(CMAKE_C_COMPILER ${WASISDK}/bin/wasi-c)
54+
set(CMAKE_CXX_COMPILER ${WASISDK}/bin/wasi-c++)
55+
56+
set(CMAKE_C_COMPILER_ID_RUN TRUE)
57+
set(CMAKE_C_COMPILER_FORCED TRUE)
58+
set(CMAKE_C_COMPILER_WORKS TRUE)
59+
set(CMAKE_C_COMPILER_ID Clang)
60+
set(CMAKE_C_COMPILER_FRONTEND_VARIANT GNU)
61+
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT 11)
62+
63+
set(CMAKE_CXX_COMPILER_ID_RUN TRUE)
64+
set(CMAKE_CXX_COMPILER_FORCED TRUE)
65+
set(CMAKE_CXX_COMPILER_WORKS TRUE)
66+
set(CMAKE_CXX_COMPILER_ID Clang)
67+
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT GNU)
68+
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT 98)
69+
70+
set(CMAKE_C_PLATFORM_ID "wasi")
71+
set(CMAKE_CXX_PLATFORM_ID "wasi")
72+
73+
set(CMAKE_ASM_COMPILER ${WASI_SDK_PREFIX}/bin/clang${WASI_HOST_EXE_SUFFIX})
74+
set(CMAKE_AR ${WASI_SDK_PREFIX}/bin/llvm-ar${WASI_HOST_EXE_SUFFIX})
75+
set(CMAKE_RANLIB ${WASI_SDK_PREFIX}/bin/llvm-ranlib${WASI_HOST_EXE_SUFFIX})
76+
set(CMAKE_C_COMPILER_TARGET ${triple})
77+
set(CMAKE_CXX_COMPILER_TARGET ${triple})
78+
set(CMAKE_ASM_COMPILER_TARGET ${triple})
79+
80+
# Don't look in the sysroot for executables to run during the build
81+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
82+
# Only look in the sysroot (not in the host paths) for the rest
83+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
84+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
85+
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
86+
87+
# 64
88+
#set(CMAKE_SIZEOF_VOID_P 8)
89+
#set(CMAKE_C_SIZEOF_DATA_PTR 8)
90+
#set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
91+
92+
# 32
93+
set(CMAKE_SIZEOF_VOID_P 4)
94+
set(CMAKE_C_SIZEOF_DATA_PTR 4)
95+
set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
96+
97+
# faster
98+
set(CMAKE_SKIP_COMPATIBILITY_TESTS 1)
99+
set(CMAKE_SIZEOF_CHAR 1)
100+
set(CMAKE_SIZEOF_UNSIGNED_SHORT 2)
101+
set(CMAKE_SIZEOF_SHORT 2)
102+
set(CMAKE_SIZEOF_INT 4)
103+
set(CMAKE_SIZEOF_UNSIGNED_LONG 4)
104+
set(CMAKE_SIZEOF_UNSIGNED_INT 4)
105+
set(CMAKE_SIZEOF_LONG 4)
106+
set(CMAKE_SIZEOF_FLOAT 4)
107+
set(CMAKE_SIZEOF_DOUBLE 8)
108+
set(CMAKE_HAVE_LIMITS_H 1)
109+
set(CMAKE_HAVE_UNISTD_H 1)
110+
set(CMAKE_HAVE_PTHREAD_H 1)
111+
set(CMAKE_HAVE_SYS_PRCTL_H 1)
112+
set(CMAKE_WORDS_BIGENDIAN 0)
113+
114+
115+
116+
117+
set(CMAKE_EXECUTABLE_SUFFIX ".wasm")
118+
119+
120+
set(CMAKE_CROSSCOMPILING_EMULATOR "${WASISDK}/bin/wasi-run" FILEPATH "Path to the emulator for the target system.")
121+
122+
123+
124+
125+
126+
127+
128+
129+
130+
131+

0 commit comments

Comments
 (0)