diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/x1/x16/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/x1/x16/package.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/x1/x16/package.nix b/nixpkgs/pkgs/by-name/x1/x16/package.nix new file mode 100644 index 000000000000..6a144bea669d --- /dev/null +++ b/nixpkgs/pkgs/by-name/x1/x16/package.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, callPackage +, zlib +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "x16-emulator"; + version = "46"; + + src = fetchFromGitHub { + owner = "X16Community"; + repo = "x16-emulator"; + rev = "r${finalAttrs.version}"; + hash = "sha256-cYr6s69eua1hCFqNkcomZDK9akxBqMTIaGqOl/YX2kc="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace '/bin/echo' 'echo' + ''; + + dontConfigure = true; + + buildInputs = [ + SDL2 + zlib + ]; + + installPhase = '' + runHook preInstall + + install -Dm 755 -t $out/bin/ x16emu + install -Dm 444 -t $out/share/doc/x16-emulator/ README.md + + runHook postInstall + ''; + + passthru = { + # upstream project recommends emulator and rom to be synchronized; passing + # through the version is useful to ensure this + inherit (finalAttrs) version; + emulator = finalAttrs.finalPackage; + rom = callPackage ./rom.nix { }; + run = (callPackage ./run.nix { }){ + inherit (finalAttrs.finalPackage) emulator rom; + }; + }; + + meta = { + homepage = "https://cx16forum.com/"; + description = "The official emulator of CommanderX16 8-bit computer"; + changelog = "https://github.com/X16Community/x16-emulator/blob/r${finalAttrs.version}/RELEASES.md"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ AndersonTorres ]; + mainProgram = "x16emu"; + inherit (SDL2.meta) platforms; + broken = stdenv.isAarch64; # ofborg fails to compile it + }; +}) |