summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngus Trau <me@angus.ws>2021-08-12 22:15:20 +1000
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2021-08-13 11:09:53 +0000
commitc21331c85eb67c9cc77a35428aec35d764f7804f (patch)
treed005aedb03acd4f75f2c8cd5e0b63e28d3f9b8f1
parentallegro5: fix native dialog addon (diff)
downloadnixpkgs-c21331c85eb67c9cc77a35428aec35d764f7804f.tar.gz
liberation-circuit: init at 1.3
(cherry picked from commit 005f28eca8a755d750e49ddea348d14074310592)
-rw-r--r--pkgs/games/liberation-circuit/default.nix71
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 73 insertions, 0 deletions
diff --git a/pkgs/games/liberation-circuit/default.nix b/pkgs/games/liberation-circuit/default.nix
new file mode 100644
index 000000000000..478fd606376a
--- /dev/null
+++ b/pkgs/games/liberation-circuit/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, lib, fetchFromGitHub, fetchurl, cmake, git, makeWrapper, allegro5, libGL }:
+
+stdenv.mkDerivation rec {
+ pname = "liberation-circuit";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "linleyh";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "BAv0wEJw4pK77jV+1bWPHeqyU/u0HtZLBF3ETUoQEAk=";
+ };
+
+ patches = [
+ # Linux packaging assets
+ (fetchurl {
+ url = "https://github.com/linleyh/liberation-circuit/commit/72c1f6f4100bd227540aca14a535e7f4ebdeb851.patch";
+ sha256 = "0sad1z1lls0hanv88g1q6x5qr4s8f5p42s8j8v55bmwsdc0s5qys";
+ })
+ ];
+
+ # Hack to make binary diffs work
+ prePatch = ''
+ function patch {
+ git apply --whitespace=nowarn "$@"
+ }
+ '';
+
+ postPatch = ''
+ unset -f patch
+ substituteInPlace bin/launcher.sh --replace ./libcirc ./liberation-circuit
+ '';
+
+ nativeBuildInputs = [ cmake git makeWrapper ];
+ buildInputs = [ allegro5 libGL ];
+
+ cmakeFlags = [
+ "-DALLEGRO_LIBRARY=${lib.getDev allegro5}"
+ "-DALLEGRO_INCLUDE_DIR=${lib.getDev allegro5}/include"
+ ];
+
+ NIX_CFLAGS_LINK = "-lallegro_image -lallegro_primitives -lallegro_color -lallegro_acodec -lallegro_audio -lallegro_dialog -lallegro_font -lallegro_main -lallegro -lm";
+ hardeningDisable = [ "format" ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/opt
+ cd ..
+ cp -r bin $out/opt/liberation-circuit
+ chmod +x $out/opt/liberation-circuit/launcher.sh
+ makeWrapper $out/opt/liberation-circuit/launcher.sh $out/bin/liberation-circuit
+
+ install -D linux-packaging/liberation-circuit.desktop $out/share/applications/liberation-circuit.desktop
+ install -D linux-packaging/liberation-circuit.appdata.xml $out/share/metainfo/liberation-circuit.appdata.xml
+ install -D linux-packaging/icon-256px.png $out/share/pixmaps/liberation-circuit.png
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Real-time strategy game with programmable units";
+ longDescription = ''
+ Escape from a hostile computer system! Harvest data to create an armada of battle-processes to aid your escape! Take command directly and play the game as an RTS, or use the game's built-in editor and compiler to write your own unit AI in a simplified version of C.
+ '';
+ homepage = "https://linleyh.itch.io/liberation-circuit";
+ maintainers = with maintainers; [ angustrau ];
+ license = licenses.gpl3Only;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 959d8cb2ea11..18c118c8724f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -28404,6 +28404,8 @@ in
liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
+ liberation-circuit = callPackage ../games/liberation-circuit { };
+
lincity = callPackage ../games/lincity {};
lincity_ng = callPackage ../games/lincity/ng.nix {