Merge pull request #169366 from thiagokokada/snes9x-init

snes9x: init at 1.61
This commit is contained in:
Thiago Kenji Okada 2022-04-23 11:34:16 +01:00 committed by GitHub
commit d359c16b4a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 135 additions and 38 deletions

View file

@ -1,37 +0,0 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wrapGAppsHook, alsa-lib
, SDL2, zlib, gtkmm3, libXv, libepoxy, minizip, pulseaudio, portaudio }:
stdenv.mkDerivation rec {
pname = "snes9x-gtk";
version = "1.61";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = version;
fetchSubmodules = true;
sha256 = "1kay7aj30x0vn8rkylspdycydrzsc0aidjbs0dd238hr5hid723b";
};
nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
buildInputs = [ alsa-lib SDL2 zlib gtkmm3 libXv libepoxy minizip pulseaudio portaudio ];
preConfigure = "cd gtk";
meta = with lib; {
homepage = "https://www.snes9x.com";
description = "Super Nintendo Entertainment System (SNES) emulator";
longDescription = ''
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
emulator. It basically allows you to play most games designed for the SNES
and Super Famicom Nintendo game systems on your PC or Workstation; which
includes some real gems that were only ever released in Japan.
'';
# see https://github.com/snes9xgit/snes9x/blob/master/LICENSE for exact details
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ qknight xfix ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,130 @@
{ lib
, stdenv
, alsa-lib
, autoreconfHook
, fetchFromGitHub
, fetchpatch
, gtkmm3
, libepoxy
, libpng
, libX11
, libXv
, libXext
, libXinerama
, meson
, minizip
, ninja
, pkg-config
, portaudio
, pulseaudio
, SDL2
, wrapGAppsHook
, zlib
, withGtk ? false
}:
stdenv.mkDerivation rec {
pname =
if withGtk then
"snes9x-gtk"
else
"snes9x";
version = "1.61";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
rev = version;
fetchSubmodules = true;
sha256 = "1kay7aj30x0vn8rkylspdycydrzsc0aidjbs0dd238hr5hid723b";
};
patches = [
# Fix cross-compilation, otherwise it fails to detect host compiler features
# Doesn't affect non CC builds
(fetchpatch {
url = "https://mirror.its.dal.ca/gentoo-portage/games-emulation/snes9x/files/snes9x-1.53-cross-compile.patch";
sha256 = "sha256-ZCmnprimz8PtDIXkB1dYD0oura9icW81yKvJ4coKaDg=";
})
];
nativeBuildInputs = [
pkg-config
]
++ lib.optionals (!withGtk) [
autoreconfHook
]
++ lib.optionals withGtk [
meson
ninja
wrapGAppsHook
];
buildInputs = [
libX11
libXext
libXv
minizip
zlib
]
# on non-Linux platforms this will build without sound support on X11 build
++ lib.optionals stdenv.isLinux [
alsa-lib
pulseaudio
]
++ lib.optionals (!withGtk) [
libpng
libXinerama
]
++ lib.optionals withGtk [
gtkmm3
libepoxy
portaudio
SDL2
];
configureFlags =
lib.optional stdenv.hostPlatform.sse4_1Support "--enable-sse41"
++ lib.optional stdenv.hostPlatform.avx2Support "--enable-avx2";
installPhase = lib.optionalString (!withGtk) ''
runHook preInstall
install -Dm755 snes9x -t "$out/bin/"
install -Dm644 snes9x.conf.default -t "$out/share/doc/${pname}/"
install -Dm644 ../docs/{control-inputs,controls,snapshots}.txt -t \
"$out/share/doc/${pname}/"
runHook postInstall
'';
preAutoreconf = lib.optionalString (!withGtk) "cd unix";
preConfigure = lib.optionalString withGtk "cd gtk";
enableParallelBuilding = true;
meta = with lib;
let
interface = if withGtk then "GTK" else "X11";
in
{
homepage = "https://www.snes9x.com";
description = "Super Nintendo Entertainment System (SNES) emulator, ${interface} version";
longDescription = ''
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
emulator. It basically allows you to play most games designed for the SNES
and Super Famicom Nintendo game systems on your PC or Workstation; which
includes some real gems that were only ever released in Japan.
Version build with ${interface} interface.
'';
license = licenses.unfreeRedistributable // {
url = "https://github.com/snes9xgit/snes9x/blob/${version}/LICENSE";
};
maintainers = with maintainers; [ qknight xfix thiagokokada ];
platforms = platforms.unix;
broken = (withGtk && stdenv.isDarwin);
};
}

View file

@ -1355,7 +1355,11 @@ with pkgs;
simplenes = callPackage ../applications/emulators/simplenes { }; simplenes = callPackage ../applications/emulators/simplenes { };
snes9x-gtk = callPackage ../applications/emulators/snes9x-gtk { }; snes9x = callPackage ../applications/emulators/snes9x { };
snes9x-gtk = callPackage ../applications/emulators/snes9x {
withGtk = true;
};
stella = callPackage ../applications/emulators/stella { }; stella = callPackage ../applications/emulators/stella { };