{ pkgs, stdenv, importCargo, rustc, cargo, openssl, pkg-config, ... }:
{
default = stdenv.mkDerivation {
name = "mineflake";
src = ./.;
nativeBuildInputs = [
(importCargo { lockFile = ./Cargo.lock; inherit pkgs; }).cargoHome
# Build-time dependencies
rustc
cargo
openssl.dev
pkg-config
];
buildPhase = ''
cargo build --release --offline
'';
installPhase = ''
install -Dm775 ./target/release/mineflake $out/bin/mineflake
'';
};
offline = stdenv.mkDerivation {
name = "mineflake-offline";
src = ./.;
nativeBuildInputs = [
(importCargo { lockFile = ./Cargo.lock; inherit pkgs; }).cargoHome
# Build-time dependencies
rustc
cargo
];
buildPhase = ''
cargo build --release --no-default-features --features cli --offline
'';
installPhase = ''
install -Dm775 ./target/release/mineflake $out/bin/mineflake
'';
};
}