# --- T2-COPYRIGHT-NOTE-BEGIN --- # T2 SDE: package/*/wasi-libcxx/wasi-libcxx.conf # Copyright (C) 2022 - 2024 The T2 SDE Project # # This Copyright note is generated by scripts/Create-CopyPatch, # more information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2. # --- T2-COPYRIGHT-NOTE-END --- # TODO: sync w/ wasi-libc [ $prefix_auto = 1 ] && prefix=opt/wasi && set_confopt runmake=0 prepare_sources() { cd .. tar $taropt `match_source_file -p cxxabi` tar $taropt `match_source_file -p llvm-cmake` tar $taropt `match_source_file -p runtimes` for f in libcxx{,abi} cmake; do ln -sfv $f-* $f done ln -srv runtimes-*/cmake/Modules/*.cmake cmake/Modules/ } hook_add preconf 5 prepare_sources export CC=clang CXX=clang++ # LD=clang export CFLAGS="-fno-exceptions --sysroot=$root/$prefix" export CXXFLAGS="-fno-exceptions --sysroot=$root/$prefix -I$builddir/libcxxabi/include -I$builddir/objs/include/c++/v1/" export DESTDIR=$root cmakeopt= var_append cmakeopt " " "-DUNIX=ON \ -DCMAKE_TOOLCHAIN_FILE=$confdir/../wasi-libc/wasi-sdk.cmake \ -DCMAKE_C_COMPILER_WORKS=ON -DCMAKE_CXX_COMPILER_WORKS=ON \ -DCMAKE_STAGING_PREFIX=/opt/wasi" var_append cmakeopt " " "-DLIBCXX_ABI_VERSION=2 \ -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \ -DLIBCXX_ENABLE_EXCEPTIONS=OFF \ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \ -DLIBCXX_ENABLE_FILESYSTEM=OFF \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXX_ENABLE_THREADS=OFF \ -DLIBCXX_USE_COMPILER_RT=YES \ -DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \ -DLIBCXX_HAS_MUSL_LIBC=ON \ -DLIBCXX_HAS_PTHREAD_API=OFF \ -DLIBCXX_HAS_WIN32_THREAD_API=OFF \ -DLIBCXX_INCLUDE_BENCHMARKS=OFF \ -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \ -DLIBCXX_STANDALONE_BUILD=ON" var_append cmakeopt " " "-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \ -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \ -DLIBCXXABI_ENABLE_PIC=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_THREADS=OFF \ -DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \ -DLIBCXXABI_HAS_PTHREAD_API=OFF \ -DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \ -DLIBCXXABI_LIBCXX_INCLUDES=$root/opt/wasi/include/c++/v1 \ -DLIBCXXABI_LIBCXX_PATH=libcxx \ -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \ -DLIBCXXABI_INCLUDE_TESTS=OFF \ -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \ -DLIBCXXABI_STANDALONE_BUILD=ON" build_libcxx() { eval cmake -B objs $cmakeopt libcxx cmake --build objs cmake --install objs eval cmake -B objs-abi $cmakeopt libcxxabi cmake --build objs-abi cmake --install objs-abi } hook_add inmake 5 build_libcxx