122 lines
3.2 KiB
Nix
122 lines
3.2 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
|
let
|
|
inherit (builtins) substring;
|
|
version = "${substring 0 8 self.lastModifiedDate}_${self.shortRev or "dirty"}";
|
|
|
|
mkGodotEmailTemplates = { stdenv, fetchurl, unzip, lib, ... }:
|
|
stdenv.mkDerivation rec {
|
|
pname = "godot-email-templates";
|
|
version = "4.2.1-stable";
|
|
src = fetchurl {
|
|
url = "https://github.com/godotengine/godot/releases/download/${version}/Godot_v${version}_export_templates.tpz";
|
|
hash = "sha256-xfFA61eEY6L6FAfzXjfBeqNKS4R7nTDinDhHuV5t2gc=";
|
|
};
|
|
nativeBuildInputs = [ unzip ];
|
|
unpackPhase = ''
|
|
mkdir $out
|
|
unzip $src
|
|
mv templates $out/${lib.replaceStrings ["-"] ["."] version}
|
|
'';
|
|
};
|
|
|
|
mkMindustryTools =
|
|
{ stdenv
|
|
, lib
|
|
, vulkan-loader
|
|
, libGL
|
|
, libX11
|
|
, libXcursor
|
|
, libXinerama
|
|
, libXext
|
|
, libXrandr
|
|
, libXrender
|
|
, libXi
|
|
, libXfixes
|
|
, libxkbcommon
|
|
, alsa-lib
|
|
, libpulseaudio
|
|
, dbus
|
|
, speechd
|
|
, fontconfig
|
|
, udev
|
|
, makeWrapper
|
|
, autoPatchelfHook
|
|
, godot_4
|
|
, godotEmailTemplates
|
|
, ...
|
|
}:
|
|
stdenv.mkDerivation {
|
|
pname = "mindustry-tools";
|
|
inherit version;
|
|
|
|
src = ./.;
|
|
|
|
nativeBuildInputs = [
|
|
autoPatchelfHook
|
|
makeWrapper
|
|
godot_4
|
|
];
|
|
|
|
runtimeDependencies = [
|
|
vulkan-loader
|
|
libGL
|
|
libX11
|
|
libXcursor
|
|
libXinerama
|
|
libXext
|
|
libXrandr
|
|
libXrender
|
|
libXi
|
|
libXfixes
|
|
libxkbcommon
|
|
alsa-lib
|
|
libpulseaudio
|
|
dbus
|
|
dbus.lib
|
|
speechd
|
|
fontconfig
|
|
fontconfig.lib
|
|
udev
|
|
];
|
|
|
|
buildPhase = ''
|
|
export HOME=$(pwd)
|
|
mkdir -p .local/share/godot/export_templates/
|
|
cp -r ${godotEmailTemplates}/* .local/share/godot/export_templates
|
|
# godot4 --headless --export-release "Linux/X11" mindustry-tools
|
|
godot4 --headless --export-debug "Linux/X11" mindustry-tools
|
|
'';
|
|
|
|
installPhase = ''
|
|
install -m755 -D mindustry-tools $out/bin/mindustry-tools
|
|
'';
|
|
};
|
|
in
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
inherit (builtins) mapAttrs;
|
|
pkgs = import nixpkgs { inherit system; };
|
|
|
|
godotEmailTemplates = pkgs.callPackage mkGodotEmailTemplates { };
|
|
mindustryTools = pkgs.callPackage mkMindustryTools { inherit godotEmailTemplates; };
|
|
|
|
mkApp = drv: flake-utils.lib.mkApp { inherit drv; };
|
|
packages = {
|
|
default = mindustryTools;
|
|
email-templates = godotEmailTemplates;
|
|
};
|
|
in
|
|
{
|
|
check = packages;
|
|
|
|
inherit packages;
|
|
|
|
apps = mapAttrs (name: mkApp) packages;
|
|
});
|
|
}
|