ArmorPaint flake.

This commit is contained in:
DigitalDragon 2025-05-04 20:19:09 +02:00
parent dd7f0bfca3
commit 31ccac9251
No known key found for this signature in database
GPG key ID: E90DC40802835A6E
5 changed files with 332 additions and 5 deletions

View file

@ -1,15 +1,84 @@
# Copyright 2025 DigitalDragon <digitaldragon.club>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{
description = "A very basic flake";
description = "ArmorPaint flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
armortools = {
url = "github:armory3d/armortools";
flake = false;
};
};
outputs = { self, nixpkgs }: {
outputs = { self, nixpkgs, armortools }: {
packages.x86_64-linux.armorpaint =
with import nixpkgs { system = "x86_64-linux"; };
stdenv.mkDerivation rec {
name = "ArmorPaint";
src = armortools;
patches = [ ./shebang+platform-fix.patch ];
buildInputs = [
# Required programs
steam-run-free
clang
];
nativeBuildInputs = [
# Main ArmorPaint dependencies
xorg.libXinerama
xorg.libXrandr
alsa-lib
xorg.libXi
mesa
libGL
xorg.libXcursor
udev
gtk3
# Additional dependencies
glib
pango
harfbuzz
cairo
gdk-pixbuf
atk
libxkbcommon
];
buildPhase = ''
cd armorpaint
export CPATH="${gtk3.dev}/include/gtk-3.0:${glib.dev}/include/glib-2.0:${pango.dev}/include/pango-1.0:${harfbuzz.dev}/include/harfbuzz:${cairo.dev}/include/cairo:${gdk-pixbuf.dev}/include/gdk-pixbuf-2.0:${atk.dev}/include/atk-1.0:${libxkbcommon.dev}/include:$CPATH"
export KINC_PLATFORM=linux_x64
steam-run ../armorcore/make --graphics opengl --run
'';
installPhase = ''
mkdir $out/bin -p
mv ./build/out $out/lib
{ echo "#!${pkgs.bash}/bin/bash -e"; \
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${pkgs.lib.makeLibraryPath nativeBuildInputs}"; \
echo "export GSETTINGS_SCHEMA_DIR=${pkgs.gtk3}/share/gsettings-schemas/gtk+3-${pkgs.gtk3.version}/glib-2.0/schemas"; \
echo "tempdir=/tmp/armorpaint-\$USER"; \
echo "mkdir \$tempdir/data -p"; \
echo "ln -sf $out/lib/ArmorPaint \$tempdir"; \
echo "ln -sf $out/lib/data/* \$tempdir/data/"; \
echo "exec \"\$tempdir/ArmorPaint\" \"\$@\""; \
} > $out/bin/ArmorPaint
chmod +x $out/bin/ArmorPaint
'';
};
packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
packages.x86_64-linux.default = self.packages.x86_64-linux.hello;
packages.x86_64-linux.default = self.packages.x86_64-linux.armorpaint;
};
}