2025-07-26 11:39:35 +02:00

76 lines
1.8 KiB
Nix

{
fetchFromGitHub,
lib,
nix-update-script,
rustPlatform,
stdenv,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "librashader";
version = "0.8.1";
src = fetchFromGitHub {
owner = "SnowflakePowered";
repo = "librashader";
tag = "librashader-v${finalAttrs.version}";
hash = "sha256-S0EZES4KLL52UT6ub9GVGl/n2gWxmoxazwZr7oEMTHo=";
};
patches = [
./patches/fix-optional-dep-syntax.patch
];
cargoHash = "sha256-fKYpRvH8zt7GeiaBf1oZHBY4WSCVQzZ0Ca7Q3ek6QE0=";
buildPhase = ''
runHook preBuild
cargo run -p librashader-build-script -- --profile optimized --stable
runHook postBuild
'';
doCheck = false;
installPhase = ''
runHook preInstall
cd target/optimized
mkdir -p $out/lib $out/include/librashader
''
+ (
if stdenv.hostPlatform.isDarwin then
''
install_name_tool -id $out/lib/librashader.dylib librashader.dylib
install -m755 librashader.dylib $out/lib/librashader.dylib
''
else
''
patchelf --set-soname librashader.so.2 librashader.so
install -m755 librashader.so $out/lib/librashader.so.2
ln -s $out/lib/librashader.so.2 $out/lib/librashader.so
''
)
+ ''
install -m644 ../../include/librashader.h -t $out/include/librashader
install -m644 ../../include/librashader_ld.h -t $out/include/librashader
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"librashader-v(.*)"
];
};
meta = {
description = "RetroArch Shaders for All";
homepage = "https://github.com/SnowflakePowered/librashader";
license = with lib.licenses; [
mpl20
gpl3Only
];
maintainers = with lib.maintainers; [ nadiaholmquist ];
platforms = lib.platforms.all;
};
})