Build the server & frontend with nix

This commit is contained in:
traxys 2023-07-27 23:46:54 +02:00
parent 7a2ff7ad1d
commit 20067da9e1

View file

@ -34,16 +34,17 @@
cargo = rust;
rustc = rust;
};
dioxus-cli = naersk'.buildPackage {
src = "${dioxus}/packages/cli";
buildInputs = [pkgs.openssl];
nativeBuildInputs = [pkgs.pkg-config];
};
in {
devShell = pkgs.mkShell {
nativeBuildInputs = [
rust
dioxus-cli
(naersk'.buildPackage trunk)
(naersk'.buildPackage {
src = "${dioxus}/packages/cli";
buildInputs = [pkgs.openssl];
nativeBuildInputs = [pkgs.pkg-config];
})
pkgs.httpie
pkgs.sea-orm-cli
];
@ -51,6 +52,56 @@
RUST_DOC_PATH = "${rust}/share/doc/rust/html/std/index.html";
};
defaultPackage = naersk'.buildPackage ./.;
packages = {
server = naersk'.buildPackage ./.;
frontend = let
pkg = {
stdenv,
makeRustPlatform,
wasm-bindgen-cli,
}: let
rustPlatformWasm = makeRustPlatform {
rustc = rust;
cargo = rust;
};
in
stdenv.mkDerivation {
pname = "regalade-web";
version = "0.1.0";
src = ./.;
cargoDeps = rustPlatformWasm.importCargoLock {lockFile = ./Cargo.lock;};
nativeBuildInputs = [
dioxus-cli
wasm-bindgen-cli
rustPlatformWasm.cargoSetupHook
rustPlatformWasm.cargoBuildHook
];
buildPhase = ''
runHook preBuild
export XDG_DATA_HOME=/build/data
mkdir -p $XDG_DATA_HOME
cd app
dioxus build --release
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R dist $out
runHook postInstall
'';
};
in
pkgs.callPackage pkg {};
};
});
}