* imported qemu/hotfix-glibc-2.41.patch
[t2sde.git] / package / develop / wasi-libcxx / wasi-libcxx.conf
blob67f065072084f6abb28cba5dca87ca29e856c756
1 # --- T2-COPYRIGHT-NOTE-BEGIN ---
2 # T2 SDE: package/*/wasi-libcxx/wasi-libcxx.conf
3 # Copyright (C) 2022 - 2024 The T2 SDE Project
4
5 # This Copyright note is generated by scripts/Create-CopyPatch,
6 # more information can be found in the files COPYING and README.
7
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License version 2.
10 # --- T2-COPYRIGHT-NOTE-END ---
12 # TODO: sync w/ wasi-libc
13 [ $prefix_auto = 1 ] && prefix=opt/wasi && set_confopt
15 runmake=0
17 prepare_sources() {
18         cd ..
19         tar $taropt `match_source_file -p cxxabi`
20         tar $taropt `match_source_file -p llvm-cmake`
21         tar $taropt `match_source_file -p runtimes`
22         for f in libcxx{,abi} cmake; do
23                 ln -sfv $f-* $f
24         done
26         ln -srv runtimes-*/cmake/Modules/*.cmake cmake/Modules/
28 hook_add prepatch 5 prepare_sources
30 . $base/package/*/*/wasi.in
32 export CC=clang CXX=clang++ # LD=clang
33 export CFLAGS="-fno-exceptions --sysroot=$root/$prefix"
34 export CXXFLAGS="-fno-exceptions --sysroot=$root/$prefix -I$builddir/libcxxabi/include -I$builddir/objs/include/c++/v1/"
35 export DESTDIR=$root
37 cmakeopt=
38 var_append cmakeopt " " "-DUNIX=ON \
39 -DCMAKE_TOOLCHAIN_FILE=$confdir/../wasi-libc/wasi-sdk.cmake \
40 -DCMAKE_C_COMPILER_WORKS=ON -DCMAKE_CXX_COMPILER_WORKS=ON \
41 -DCMAKE_STAGING_PREFIX=/opt/wasi"
43 var_append cmakeopt " " "-DLIBCXX_ABI_VERSION=2 \
44 -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
45 -DLIBCXX_CXX_ABI=libcxxabi \
46 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \
47 -DLIBCXX_ENABLE_EXCEPTIONS=OFF \
48 -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
49 -DLIBCXX_ENABLE_FILESYSTEM=OFF \
50 -DLIBCXX_ENABLE_SHARED=OFF \
51 -DLIBCXX_ENABLE_THREADS=OFF \
52 -DLIBCXX_USE_COMPILER_RT=YES \
53 -DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
54 -DLIBCXX_HAS_MUSL_LIBC=ON \
55 -DLIBCXX_HAS_PTHREAD_API=OFF \
56 -DLIBCXX_HAS_WIN32_THREAD_API=OFF \
57 -DLIBCXX_INCLUDE_BENCHMARKS=OFF \
58 -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
59 -DLIBCXX_STANDALONE_BUILD=ON"
61 var_append cmakeopt " " "-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
62 -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
63 -DLIBCXXABI_ENABLE_PIC=OFF \
64 -DLIBCXXABI_ENABLE_SHARED=OFF \
65 -DLIBCXXABI_ENABLE_THREADS=OFF \
66 -DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
67 -DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
68 -DLIBCXXABI_HAS_PTHREAD_API=OFF \
69 -DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \
70 -DLIBCXXABI_LIBCXX_INCLUDES=libcxxabi/include/c++/v1 \
71 -DLIBCXXABI_LIBCXX_PATH=libcxx \
72 -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
73 -DLIBCXXABI_INCLUDE_TESTS=OFF \
74 -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
75 -DLIBCXXABI_STANDALONE_BUILD=ON"
77 build_libcxx() {
78         eval cmake -B objs $cmakeopt libcxx
79         cmake --build objs
81         eval cmake -B objs-abi $cmakeopt libcxxabi
82         cmake --build objs-abi
84         cmake --install objs
85         cmake --install objs-abi
87 hook_add inmake 5 build_libcxx