This repository has no description
1{
2 fetch,
3 run,
4 config,
5
6 clang,
7 cmake,
8 lld,
9 linux,
10 llvm,
11 musl,
12 ninja,
13 python3,
14}:
15
16run
17 rec {
18 name = "libcxx";
19 # renovate: datasource=github-releases name=llvm/llvm-project
20 version = "19.1.7";
21 src = fetch.tar {
22 url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz";
23 hash = "sha256-gkAf6nt50AeAQ/dZi4NShNZlCnW5PmS292Hqe2MJdQE=";
24 };
25 path = [
26 clang
27 cmake
28 lld
29 llvm
30 ninja
31 python3
32 ];
33 }
34 ''
35 cmake -S runtimes -B build -G Ninja \
36 -DCMAKE_BUILD_TYPE=${if config.debug then "Debug" else "Release"} \
37 -DCMAKE_INSTALL_PREFIX=$out \
38 -DCMAKE_SYSROOT=${musl} \
39 -DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
40 -DCMAKE_C_COMPILER_TARGET=wasm32-unknown-linux-musl \
41 -DCMAKE_C_FLAGS="-I${linux.headers}/include" \
42 -DCMAKE_CXX_COMPILER_TARGET=wasm32-unknown-linux-musl \
43 -DCMAKE_CXX_FLAGS="-I${linux.headers}/include" \
44 -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
45 -DLIBCXX_ENABLE_SHARED=OFF \
46 -DLIBCXX_HAS_MUSL_LIBC=ON \
47 -DLIBCXX_USE_COMPILER_RT=ON \
48 -DLIBCXXABI_ENABLE_SHARED=OFF \
49 -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
50
51 cmake --build build --target install -j$NIX_BUILD_CORES
52 ''