diff --git a/pkgs/games/infra-arcana/default.nix b/pkgs/games/infra-arcana/default.nix new file mode 100644 index 00000000000..e48c69a2cf3 --- /dev/null +++ b/pkgs/games/infra-arcana/default.nix @@ -0,0 +1,60 @@ +{ lib +, stdenv +, fetchFromGitLab +, cmake +, makeWrapper +, SDL2 +, SDL2_image +, SDL2_mixer +}: + +stdenv.mkDerivation rec { + pname = "infra-arcana"; + version = "21.0.1"; + + src = fetchFromGitLab { + owner = "martin-tornqvist"; + repo = "ia"; + rev = "v${version}"; + sha256 = "sha256-E2ssxdYa27qRk5cCmM7A5VqXGExwXHblR34y+rOUBRI="; + }; + + nativeBuildInputs = [ cmake makeWrapper ]; + buildInputs = [ SDL2 SDL2_image SDL2_mixer ]; + + # Some parts of the game don't compile with glibc 2.34. As soon as + # this is fixed upstream we can switch to the default build flags. + buildFlags = [ "ia" ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{opt/ia,bin} + + # Remove build artifacts + rm -rf CMake* cmake* compile_commands.json CTest* Makefile + cp -ra * $out/opt/ia + + # Uses relative paths when looking for assets + wrapProgram $out/opt/ia/ia --run "cd $out/opt/ia" + ln -s $out/opt/ia/ia $out/bin/infra-arcana + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://sites.google.com/site/infraarcana"; + description = "A Lovecraftian single-player roguelike game"; + longDescription = '' + Infra Arcana is a Roguelike set in the early 20th century. The goal is to + explore the lair of a dreaded cult called The Church of Starry Wisdom. + + Buried deep beneath their hallowed grounds lies an artifact called The + Shining Trapezohedron - a window to all secrets of the universe. Your + ultimate goal is to unearth this artifact. + ''; + platforms = platforms.linux; + maintainers = [ maintainers.kenran ]; + license = licenses.agpl3Plus; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 630c6f6e00d..1f8af601d08 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31961,6 +31961,8 @@ with pkgs; icbm3d = callPackage ../games/icbm3d { }; + infra-arcana = callPackage ../games/infra-arcana { }; + ingen = callPackage ../applications/audio/ingen { }; ideogram = callPackage ../applications/graphics/ideogram { };