20
20
21
21
build/llvm.BUILT :
22
22
mkdir -p build/llvm
23
- cd build/llvm; cmake -G Ninja \
23
+ cmake -B build/llvm -G Ninja \
24
24
-DCMAKE_BUILD_TYPE=MinSizeRel \
25
25
-DCMAKE_INSTALL_PREFIX=$(PREFIX ) \
26
26
-DLLVM_TARGETS_TO_BUILD=WebAssembly \
@@ -58,8 +58,9 @@ build/wasi-libc.BUILT: build/llvm.BUILT
58
58
touch build/wasi-libc.BUILT
59
59
60
60
build/compiler-rt.BUILT : build/llvm.BUILT
61
+ # Do the build, and install it.
61
62
mkdir -p build/compiler-rt
62
- cd build/compiler-rt; cmake -G Ninja \
63
+ cmake -B build/compiler-rt -G Ninja \
63
64
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
64
65
-DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
65
66
-DCOMPILER_RT_BAREMETAL_BUILD=On \
@@ -76,67 +77,80 @@ build/compiler-rt.BUILT: build/llvm.BUILT
76
77
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
77
78
$(LLVM_PROJ_DIR ) /compiler-rt/lib/builtins
78
79
ninja $(NINJA_FLAGS ) -v -C build/compiler-rt install
80
+ # Install clang-provided headers.
79
81
cp -R $(ROOT_DIR ) /build/llvm/lib/clang $(PREFIX ) /lib/
80
82
touch build/compiler-rt.BUILT
81
83
84
+ # Flags for libcxx.
85
+ LIBCXX_CMAKE_FLAGS = \
86
+ -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
87
+ -DLLVM_CONFIG_PATH=$(ROOT_DIR ) /build/llvm/bin/llvm-config \
88
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
89
+ -DLIBCXX_ENABLE_THREADS:BOOL=OFF \
90
+ -DLIBCXX_HAS_PTHREAD_API:BOOL=OFF \
91
+ -DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
92
+ -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
93
+ -DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
94
+ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
95
+ -DLIBCXX_ENABLE_SHARED:BOOL=OFF \
96
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF \
97
+ -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
98
+ -DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
99
+ -DLIBCXX_CXX_ABI=libcxxabi \
100
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(LLVM_PROJ_DIR ) /libcxxabi/include \
101
+ -DLIBCXX_HAS_MUSL_LIBC:BOOL=ON \
102
+ -DLIBCXX_ABI_VERSION=2 \
103
+ -DWASI_SDK_PREFIX=$(PREFIX ) \
104
+ --debug-trycompile
105
+
82
106
build/libcxx.BUILT : build/llvm.BUILT build/compiler-rt.BUILT build/wasi-libc.BUILT
107
+ # Do the build.
83
108
mkdir -p build/libcxx
84
- cd build/libcxx; cmake -G Ninja \
85
- -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
86
- -DLLVM_CONFIG_PATH=$(ROOT_DIR ) /build/llvm/bin/llvm-config \
87
- -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
88
- -DLIBCXX_ENABLE_THREADS:BOOL=OFF \
89
- -DLIBCXX_HAS_PTHREAD_API:BOOL=OFF \
90
- -DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
91
- -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
92
- -DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
93
- -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
94
- -DLIBCXX_ENABLE_SHARED:BOOL=OFF \
95
- -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF \
96
- -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
97
- -DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
98
- -DLIBCXX_CXX_ABI=libcxxabi \
99
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(LLVM_PROJ_DIR ) /libcxxabi/include \
100
- -DLIBCXX_HAS_MUSL_LIBC:BOOL=ON \
101
- -DLIBCXX_ABI_VERSION=2 \
102
- -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
103
- -DWASI_SDK_PREFIX=$(PREFIX ) \
104
- -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) " \
105
- -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) " \
106
- --debug-trycompile \
107
- $(LLVM_PROJ_DIR ) /libcxx
109
+ cmake -B build/libcxx -G Ninja $(LIBCXX_CMAKE_FLAGS ) \
110
+ -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) " \
111
+ -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) " \
112
+ -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
113
+ $(LLVM_PROJ_DIR ) /libcxx
114
+ ninja $(NINJA_FLAGS ) -v -C build/libcxx
115
+ # Do the install.
108
116
ninja $(NINJA_FLAGS ) -v -C build/libcxx install
109
117
touch build/libcxx.BUILT
110
118
119
+ # Flags for libcxxabi.
120
+ LIBCXXABI_CMAKE_FLAGS = \
121
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
122
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
123
+ -DCMAKE_C_COMPILER_WORKS=ON \
124
+ -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
125
+ -DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
126
+ -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
127
+ -DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
128
+ -DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
129
+ -DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
130
+ -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
131
+ -DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
132
+ $(if $(patsubst 8.% ,,$(CLANG_VERSION ) ) ,-DLIBCXXABI_ENABLE_PIC:BOOL=OFF,) \
133
+ -DCXX_SUPPORTS_CXX11=ON \
134
+ -DLLVM_COMPILER_CHECKED=ON \
135
+ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
136
+ -DLIBCXXABI_LIBCXX_PATH=$(LLVM_PROJ_DIR ) /libcxx \
137
+ -DLIBCXXABI_LIBCXX_INCLUDES=$(PREFIX ) /share/wasi-sysroot/include/c++/v1 \
138
+ -DLLVM_CONFIG_PATH=$(ROOT_DIR ) /build/llvm/bin/llvm-config \
139
+ -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
140
+ -DWASI_SDK_PREFIX=$(PREFIX ) \
141
+ -DUNIX:BOOL=ON \
142
+ --debug-trycompile
143
+
111
144
build/libcxxabi.BUILT : build/libcxx.BUILT build/llvm.BUILT
145
+ # Do the build.
112
146
mkdir -p build/libcxxabi
113
- cd build/libcxxabi; cmake -G Ninja \
114
- -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
115
- -DCMAKE_CXX_COMPILER_WORKS=ON \
116
- -DCMAKE_C_COMPILER_WORKS=ON \
117
- -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
118
- -DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
119
- -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
120
- -DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
121
- -DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
122
- -DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
123
- -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
124
- -DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
125
- $(if $(patsubst 8.% ,,$(CLANG_VERSION ) ) ,-DLIBCXXABI_ENABLE_PIC:BOOL=OFF,) \
126
- -DCXX_SUPPORTS_CXX11=ON \
127
- -DLLVM_COMPILER_CHECKED=ON \
128
- -DCMAKE_BUILD_TYPE=RelWithDebugInfo \
129
- -DLIBCXXABI_LIBCXX_PATH=$(LLVM_PROJ_DIR ) /libcxx \
130
- -DLIBCXXABI_LIBCXX_INCLUDES=$(PREFIX ) /share/wasi-sysroot/include/c++/v1 \
131
- -DLLVM_CONFIG_PATH=$(ROOT_DIR ) /build/llvm/bin/llvm-config \
132
- -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
133
- -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
134
- -DWASI_SDK_PREFIX=$(PREFIX ) \
135
- -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) -I$( PREFIX) /share/wasi-sysroot/include" \
136
- -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) -I$( PREFIX) /share/wasi-sysroot/include/c++/v1" \
137
- -DUNIX:BOOL=ON \
138
- --debug-trycompile \
139
- $(LLVM_PROJ_DIR ) /libcxxabi
147
+ cmake -B build/libcxxabi -G Ninja $(LIBCXXABI_CMAKE_FLAGS ) \
148
+ -DCMAKE_C_FLAGS=" $( DEBUG_PREFIX_MAP) " \
149
+ -DCMAKE_CXX_FLAGS=" $( DEBUG_PREFIX_MAP) " \
150
+ -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
151
+ $(LLVM_PROJ_DIR ) /libcxxabi
152
+ ninja $(NINJA_FLAGS ) -v -C build/libcxxabi
153
+ # Do the install.
140
154
ninja $(NINJA_FLAGS ) -v -C build/libcxxabi install
141
155
touch build/libcxxabi.BUILT
142
156
0 commit comments