2024-11-18 12:25:52 -03:00

97 lines
1.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
godot3-headless,
libglvnd,
libX11,
libXcursor,
libXext,
libXfixes,
libXi,
libXinerama,
libXrandr,
libXrender,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "material-maker";
version = "1.3";
src = fetchFromGitHub {
owner = "RodZill4";
repo = "material-maker";
rev = finalAttrs.version;
hash = "sha256-vyagu7xL4ITt+xyoYyCcF8qq6L9sR6Ltdl6NwfrbZdA=";
};
nativeBuildInputs = [ godot3-headless ];
buildInputs = [
libglvnd
libXinerama
libXcursor
libXext
libXrandr
libXrender
libX11
libXi
libXfixes
];
buildPhase = ''
runHook preBuild
export HOME=$TMPDIR
mkdir -vp build
godot3-headless -v --export 'Linux/X11' build/material-maker
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -vp $out/share/material-maker
cp -vr \
./build/* \
./addons/material_maker/nodes \
./material_maker/environments \
./material_maker/examples \
./material_maker/library \
./material_maker/meshes \
./material_maker/misc/export \
$out/share/material-maker
mkdir -vp $out/bin
ln -vs $out/share/material-maker/material-maker $out/bin/material-maker
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
patchelf \
--set-interpreter '${stdenv.cc.bintools.dynamicLinker}' \
--set-rpath ${lib.makeLibraryPath finalAttrs.buildInputs} \
$out/share/material-maker/material-maker
runHook postFixup
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Procedural materials authoring tool";
mainProgram = "material-maker";
homepage = "https://www.materialmaker.org";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ lelgenio ];
};
})