Files
nix-files/pkgs/by-name/mslicer/package.nix

81 lines
1.9 KiB
Nix

{
fetchFromGitHub,
lib,
libglvnd,
libxkbcommon,
nix-update-script,
rustPlatform,
vulkan-loader,
wayland,
}:
rustPlatform.buildRustPackage {
pname = "mslicer";
version = "0.2.2-unstable-2025-07-18";
src = fetchFromGitHub {
owner = "connorslade";
repo = "mslicer";
rev = "076f2d48dd87ae636678ff21e75b0bed86aa4eae";
hash = "sha256-HNCtY7ZOTEnuJ3ln8P4w6k0yDtacW8OTPOH69ISiYqM=";
};
cargoHash = "sha256-A7C+wE5XGGQRTYq85YbVk6iKJETZjA9E08c0tKXdSMw=";
buildInputs = [
libglvnd
libxkbcommon
vulkan-loader
wayland
];
# from pkgs/by-name/al/alvr/package.nix, to get it to actually link against wayland
# RUSTFLAGS = map (a: "-C link-arg=${a}") [
# "-Wl,--push-state,--no-as-needed"
# # "-lEGL"
# "-lwayland-client"
# # "-lxkbcommon"
# "-Wl,--pop-state"
# ];
# Force linking to libEGL, which is always dlopen()ed, and to
# libwayland-client & libxkbcommon, which is dlopen()ed based on the
# winit backend.
# from <repo:nixos/nixpkgs:pkgs/by-name/uk/ukmm/package.nix>
NIX_LDFLAGS = [
"--push-state"
"--no-as-needed"
"-lEGL"
"-lvulkan"
"-lwayland-client"
"-lxkbcommon"
"--pop-state"
];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
# spot-check the binaries
$out/bin/goo_format --help
# these other binaries can't be invoked w/ interactivity or real data:
test -x $out/bin/mslicer
test -x $out/bin/remote_send
test -x $out/bin/slicer
runHook postInstallCheck
'';
strictDeps = true;
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = with lib; {
description = "An experimental open source slicer for masked stereolithography (resin) printers.";
homepage = "https://connorcode.com/projects/mslicer";
maintainers = with maintainers; [ colinsane ];
};
}