diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2024-05-03 00:13:16 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 00:13:16 +0000 |
commit | 26d2f291dffdcb7e5f40896be3fc3bc72538dbd0 (patch) | |
tree | 5eab6c80968fb769f5433bc2fa6b96f102d17701 /pkgs/by-name/nx/nxengine-evo/package.nix | |
parent | 2918b2c876b74d0ba5e333676ee86228f51c24e8 (diff) | |
parent | 172094c8c1f83ee7f6d7dd10e64fdc7da0e4ac3b (diff) |
Merge master into haskell-updates
Diffstat (limited to 'pkgs/by-name/nx/nxengine-evo/package.nix')
-rw-r--r-- | pkgs/by-name/nx/nxengine-evo/package.nix | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/pkgs/by-name/nx/nxengine-evo/package.nix b/pkgs/by-name/nx/nxengine-evo/package.nix new file mode 100644 index 0000000000000..4503c0ec9b2c7 --- /dev/null +++ b/pkgs/by-name/nx/nxengine-evo/package.nix @@ -0,0 +1,92 @@ +{ + lib, + SDL2, + SDL2_mixer, + callPackage, + cmake, + pkg-config, + ninja, + fetchFromGitHub, + fetchpatch, + fetchurl, + libpng, + stdenv, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "nxengine-evo"; + version = "2.6.4"; + + src = fetchFromGitHub { + owner = "nxengine"; + repo = "nxengine-evo"; + rev = "v${finalAttrs.version}"; + hash = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; + }; + + patches = [ + # Fix building by adding SDL_MIXER to include path + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/1890127ec4b4b5f8d6cb0fb30a41868e95659840.patch"; + hash = "sha256-wlsIdN2RugOo94V3qj/AzYgrs2kf0i1Iw5zNOP8WQqI="; + }) + # Fix buffer overflow + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/75b8b8e3b067fd354baa903332f2a3254d1cc017.patch"; + hash = "sha256-fZVaZAOHgFoNakOR2MfsvRJjuLhbx+5id/bcN8w/WWo="; + }) + # Add missing include + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/0076ebb11bcfec5dc5e2e923a50425f1a33a4133.patch"; + hash = "sha256-8j3fFFw8DMljV7aAFXE+eA+vkbz1HdFTMAJmk3BRU04="; + }) + ]; + + nativeBuildInputs = [ + SDL2 + cmake + ninja + pkg-config + ]; + + buildInputs = [ + SDL2 + SDL2_mixer + libpng + ]; + + strictDeps = true; + + # Allow finding game assets. + postPatch = '' + sed -i -e "s,/usr/share/,$out/share/," src/ResourceManager.cpp + ''; + + installPhase = '' + runHook preInstall + + cd .. + mkdir -p $out/bin/ $out/share/nxengine/ + install bin/* $out/bin/ + '' + '' + cp -r ${finalAttrs.finalPackage.assets}/share/nxengine/data $out/share/nxengine/data + chmod -R a=r,a+X $out/share/nxengine/data + '' + '' + runHook postInstall + ''; + + passthru = { + assets = callPackage ./assets.nix { }; + }; + + meta = { + homepage = "https://github.com/nxengine/nxengine-evo"; + description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; + license = with lib.licenses; [ + gpl3Plus + ]; + mainProgram = "nx"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.linux; + }; +}) |