nixpkgs/pkgs/by-name/tk/tkmm/package.nix
2025-06-07 19:11:51 +02:00

94 lines
1.7 KiB
Nix

{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
makeDesktopItem,
copyDesktopItems,
libX11,
glew,
libGL,
libICE,
libSM,
libXcursor,
libXext,
libXi,
libXrandr,
}:
buildDotnetModule (finalAttrs: {
pname = "Tkmm";
version = "2.0.0-beta3";
src = fetchFromGitHub {
owner = "TKMM-Team";
repo = "Tkmm";
tag = "v${finalAttrs.version}";
hash = "sha256-XdnNKnusvWhNy/0rQCULft6ztsB/nhTeQiN4F9LmxJE=";
fetchSubmodules = true;
};
patches = [ ./patchTk.diff ];
selfContainedBuild = true;
dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.runtime_9_0;
projectFile = [
"src/Tkmm/Tkmm.csproj"
"src/Tkmm.CLI/Tkmm.CLI.csproj"
];
nugetDeps = ./deps.json;
executables = [
"Tkmm"
"Tkmm.CLI"
];
nativeBuildInputs = [ copyDesktopItems ];
runtimeDeps = [
# Avalonia UI
libX11
libGL
glew
libICE
libSM
libXcursor
libXext
libXi
libXrandr
];
enableParallelBuilding = false;
dotnetFlags = [
''-p:DefineConstants="READONLY_FS"''
];
postInstall = ''
install -D distribution/appimage/tkmm.svg $out/share/icons/hicolor/scalable/apps/tkmm.svg
'';
desktopItems = [
(makeDesktopItem {
name = "Tears of the Kingdom Mod Manager";
exec = "Tkmm";
icon = "tkmm";
desktopName = "TKMM";
categories = [
"Game"
];
comment = "Tears of the Kingdom Mod Manager";
})
];
meta = {
description = "Tears of the Kingdom Mod Manager, a mod merger and manager for TotK";
homepage = "https://tkmm.org/";
license = lib.licenses.mit;
mainProgram = "Tkmm";
maintainers = with lib.maintainers; [
rucadi
];
platforms = lib.platforms.unix;
};
})