feat: prep work for web UI

This commit is contained in:
Andrew Rioux
2025-01-22 01:21:54 -05:00
parent 53019f6fc9
commit 8499c0aee9
13 changed files with 676 additions and 98 deletions
+47 -18
View File
@@ -55,25 +55,30 @@
freebsd-toolchain winpcap-drivers freebsd-libs libnl libpcap-linux-gnu
libpcap-linux-musl libpcap-freebsd;
buildTools = with pkgs; [
# Tools for local compilation
lld
zig
clang
glibc
libclang
buildTools = with pkgs; rec {
linux = [
# Tools for local compilation
lld
zig
clang
glibc
libclang
mold
# Tools for cross compilation
pkgsCross.x86_64-freebsd.buildPackages.clang
pkgsCross.mingwW64.stdenv.cc
pkgsCross.mingwW64.windows.pthreads
# Tools for building the web UI
cargo-leptos
wasm-bindgen-cli
dart-sass
binaryen
];
freebsd = [ pkgsCross.x86_64-freebsd.buildPackages.clang ];
windows = [
pkgsCross.mingwW64.stdenv.cc
pkgsCross.mingwW64.windows.pthreads
];
# Tools for building the web UI
cargo-leptos
wasm-bindgen-cli
dart-sass
binaryen
];
all = buildTools.linux ++ buildTools.freebsd ++ buildTools.windows;
};
devShellTools = with pkgs; [
# Language servers
@@ -117,8 +122,19 @@
} // system-libs);
setup-zig-freebsd = pkgs.writeScriptBin "setup-zig-freebsd" ''
set -eux
cp ${outputs.packages.freebsd-zig-libc} $(${pkgs.git}/bin/git rev-parse --show-toplevel)/unix-loader/freebsd.txt
'';
setup-dev-environment = pkgs.writeScriptBin "setup-dev-environment" ''
set -eux
${setup-zig-freebsd}/bin/setup-zig-freebsd
cargo build -p sparse-windows-beacon --target=x86_64-pc-windows-gnu
cargo build -p sparse-unix-beacon --target=x86_64-unknown-freebsd
cargo build -p sparse-unix-beacon --target=x86_64-unknown-linux-musl
'';
in {
packages = outputs.packages;
checks = outputs.checks;
@@ -127,7 +143,20 @@
default = craneLib.devShell (buildEnvironment // {
name = "sparse-default";
packages = buildTools ++ devShellTools ++ [ setup-zig-freebsd ];
packages = buildTools.all ++ devShellTools
++ [ setup-zig-freebsd setup-dev-environment ];
# Added to make development easier
SPARSE_INSTALLER_LINUX =
"../../target/x86_64-unknown-linux-musl/debug/sparse-unix-beacon";
SPARSE_INSTALLER_FREEBSD =
"../../target/x86_64-unknown-freebsd/debug/sparse-unix-beacon";
SPARSE_BEACON_LINUX =
"../../target/x86_64-unknown-linux-musl/debug/sparse-unix-beacon";
SPARSE_BEACON_FREEBSD =
"../../target/x86_64-unknown-freebsd/debug/sparse-unix-beacon";
SPARSE_BEACON_WINDOWS =
"../../target/x86_64-pc-windows-gnu/debug/sparse-windows-beacon.exe";
});
};
});