2020
2121build/llvm.BUILT :
2222 mkdir -p build/llvm
23- cd build/llvm; cmake -G Ninja \
23+ cmake -B build/llvm -G Ninja \
2424 -DCMAKE_BUILD_TYPE=MinSizeRel \
2525 -DCMAKE_INSTALL_PREFIX=$(PREFIX ) \
2626 -DLLVM_TARGETS_TO_BUILD=WebAssembly \
@@ -58,8 +58,9 @@ build/wasi-libc.BUILT: build/llvm.BUILT
5858 touch build/wasi-libc.BUILT
5959
6060build/compiler-rt.BUILT : build/llvm.BUILT
61+ # Do the build, and install it.
6162 mkdir -p build/compiler-rt
62- cd build/compiler-rt; cmake -G Ninja \
63+ cmake -B build/compiler-rt -G Ninja \
6364 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
6465 -DCMAKE_TOOLCHAIN_FILE=$(ROOT_DIR ) /wasi-sdk.cmake \
6566 -DCOMPILER_RT_BAREMETAL_BUILD=On \
@@ -76,67 +77,80 @@ build/compiler-rt.BUILT: build/llvm.BUILT
7677 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
7778 $(LLVM_PROJ_DIR ) /compiler-rt/lib/builtins
7879 ninja $(NINJA_FLAGS ) -v -C build/compiler-rt install
80+ # Install clang-provided headers.
7981 cp -R $(ROOT_DIR ) /build/llvm/lib/clang $(PREFIX ) /lib/
8082 touch build/compiler-rt.BUILT
8183
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+
82106build/libcxx.BUILT : build/llvm.BUILT build/compiler-rt.BUILT build/wasi-libc.BUILT
107+ # Do the build.
83108 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.
108116 ninja $(NINJA_FLAGS) -v -C build/libcxx install
109117 touch build/libcxx.BUILT
110118
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+
111144build/libcxxabi.BUILT : build/libcxx.BUILT build/llvm.BUILT
145+ # Do the build.
112146 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.
140154 ninja $(NINJA_FLAGS ) -v -C build/libcxxabi install
141155 touch build/libcxxabi.BUILT
142156
0 commit comments