Distro for Linux for WebAssembly
at main 49 lines 1.4 kB view raw
1# basic build dependencies from nixpkgs for cross compilation 2 3{ pkgs, wasmpkgs }: 4 5let 6 llvm = pkgs.llvmPackages_19; 7 clang = llvm.clang-unwrapped.overrideAttrs (attrs: { 8 patches = attrs.patches or [ ] ++ [ ./packages/clang/clang-add-wasm-linux-target.patch ]; 9 }); 10in 11 12{ 13 clang-no-compiler-rt = clang; 14 clang = pkgs.runCommandNoCCLocal "clang" { } '' 15 cp -r ${clang} $out 16 chmod -R +w $out 17 ln -s $out/bin/clang $out/bin/cc 18 ln -s $out/bin/clang++ $out/bin/c++ 19 20 cp -r ${clang.lib}/lib/clang $out/lib/ 21 chmod -R +w $out/lib/clang 22 23 mkdir -p $out/lib/clang/19/lib/wasm32 $out/lib/clang/19/lib/wasm32-unknown $out/lib/clang/19/lib/wasm32-unknown-linux-musl 24 cp ${wasmpkgs.compiler-rt}/libclang_rt.builtins-wasm32.a $out/lib/clang/19/lib/wasm32/libclang_rt.builtins.a 25 cp ${wasmpkgs.compiler-rt}/libclang_rt.builtins-wasm32.a $out/lib/clang/19/lib/wasm32-unknown/libclang_rt.builtins.a 26 cp ${wasmpkgs.compiler-rt}/libclang_rt.builtins-wasm32.a $out/lib/clang/19/lib/wasm32-unknown-linux-musl/libclang_rt.builtins.a 27 ''; 28 clang-host = llvm.clang; 29 clang-tblgen = llvm.clang-unwrapped.dev; 30 inherit (llvm) lld; 31 inherit (pkgs) 32 bash 33 busybox 34 bc 35 bison 36 cmake 37 curl 38 esbuild 39 findutils 40 flex 41 gnumake 42 ninja 43 perl 44 python3 45 rsync 46 wabt 47 ; 48 llvm = llvm.libllvm; 49}