Files
2026-07-15 11:48:20 -03:00

112 lines
2.5 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
godot_4_7,
vulkan-headers,
vulkan-loader,
libx11,
libxcursor,
libxext,
libxfixes,
libxi,
libxinerama,
libxrandr,
libxrender,
nix-update-script,
}:
let
godot = godot_4_7;
in
stdenv.mkDerivation (finalAttrs: {
pname = "material-maker";
version = "1.7";
src = fetchFromGitHub {
owner = "RodZill4";
repo = "material-maker";
rev = finalAttrs.version;
hash = "sha256-/oBAbdYNfIeNKnv1NGP05Nk5G8gov1yqRsG0jnFMW/Y=";
};
nativeBuildInputs = [ godot ];
buildInputs = [
vulkan-headers
vulkan-loader
libxinerama
libxcursor
libxext
libxrandr
libxrender
libx11
libxi
libxfixes
];
buildPhase = ''
runHook preBuild
export HOME=$TMPDIR
mkdir -p "$HOME/.local/share/godot"
ln -s "${godot.export-templates-bin}/share/godot/export_templates" "$HOME/.local/share/godot/export_templates"
mkdir -vp build
godot4 -v --headless --export-release '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
mkdir -vp $out/share/applications
cp -v material_maker/misc/linux/io.github.RodZill4.Material-Maker.desktop $out/share/applications
mkdir -vp $out/share/metainfo
cp -v material_maker/misc/linux/io.github.RodZill4.Material-Maker.appdata.xml $out/share/metainfo
mkdir -vp $out/share/icons/hicolor/256x256/apps
cp -v icon.png $out/share/icons/hicolor/256x256/apps/material-maker.png
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 ];
};
})