nixpkgs/pkgs/games/wireworld/default.nix
stuebinm ff1a94e523 treewide: add meta.mainProgram to packages with a single binary
The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
2024-03-19 03:14:51 +01:00

66 lines
1.4 KiB
Nix

{ lib
, stdenv
, fetchFromGitLab
, zip
, love
, makeWrapper
, makeDesktopItem
, copyDesktopItems
, strip-nondeterminism
}:
stdenv.mkDerivation rec {
pname = "wireworld";
version = "unstable-2023-05-09";
src = fetchFromGitLab {
owner = "blinry";
repo = pname;
rev = "03b82bf5d604d6d4ad3c07b224583de6c396fd17";
hash = "sha256-8BshnGLuA8lmG9g7FU349DWKP/fZvlvjrQBau/LSJ4E=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
strip-nondeterminism
zip
];
desktopItems = [
(makeDesktopItem {
name = "Wireworld";
exec = pname;
comment = "";
desktopName = "Wireworld";
genericName = "Wireworld";
categories = [ "Game" ];
})
];
installPhase = ''
runHook preInstall
zip -9 -r Wireworld.love ./*
strip-nondeterminism --type zip Wireworld.love
install -Dm444 -t $out/share/games/lovegames/ Wireworld.love
makeWrapper ${love}/bin/love $out/bin/Wireworld \
--add-flags $out/share/games/lovegames/Wireworld.love
runHook postInstall
'';
meta = with lib; {
description = "Fascinating electronics logic puzzles, game where you'll learn how to build clocks, diodes, and logic gates";
mainProgram = "Wireworld";
license = with licenses; [
mit
ofl
blueOak100
cc-by-sa-30
cc-by-sa-40
];
downloadPage = "https://ldjam.com/events/ludum-dare/53/wireworld";
maintainers = with lib.maintainers; [ janik ];
};
}