mame: 0.215 -> 0.216

gnidorah 09f5d77f 2126e37e

+56 -12
+27 -12
pkgs/misc/emulators/mame/default.nix
··· 1 - { stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem 1 + { stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper 2 2 , python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }: 3 3 4 4 let 5 5 majorVersion = "0"; 6 - minorVersion = "215"; 6 + minorVersion = "216"; 7 7 8 8 desktopItem = makeDesktopItem { 9 9 name = "MAME"; ··· 12 12 genericName = "MAME is a multi-purpose emulation framework"; 13 13 categories = "System;Emulator;"; 14 14 }; 15 + 16 + dest = "$out/opt/mame"; 15 17 in mkDerivation { 16 18 pname = "mame"; 17 19 version = "${majorVersion}.${minorVersion}"; ··· 20 22 owner = "mamedev"; 21 23 repo = "mame"; 22 24 rev = "mame${majorVersion}${minorVersion}"; 23 - sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h"; 25 + sha256 = "0dmmw08pxxznvadrc51zg27jc9fjh688355w8kxkmi7k8qa367r0"; 24 26 }; 25 27 26 28 hardeningDisable = [ "fortify" ]; 27 29 NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; 28 30 29 31 makeFlags = [ "TOOLS=1" ]; 32 + 33 + dontWrapQtApps = true; 30 34 31 35 buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; 32 - nativeBuildInputs = [ python pkgconfig which ]; 36 + nativeBuildInputs = [ python pkgconfig which makeWrapper ]; 37 + 38 + # by default MAME assumes that paths with stock resources 39 + # are relative and that you run MAME changing to 40 + # install directory, so we add absolute paths here 41 + patches = [ ./emuopts.patch ]; 42 + 43 + postPatch = '' 44 + substituteInPlace src/emu/emuopts.cpp \ 45 + --subst-var-by mame ${dest} 46 + ''; 33 47 34 48 installPhase = '' 35 - dest=$out/opt/mame 36 - 37 - make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"} 38 - mkdir -p $dest 39 - mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest 49 + make -f dist.mak PTR64=${stdenv.lib.optionalString stdenv.is64bit "1"} 50 + mkdir -p ${dest} 51 + mv build/release/*/Release/mame/* ${dest} 40 52 41 53 mkdir -p $out/bin 42 - find $dest -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; 54 + find ${dest} -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; 55 + install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh 43 56 44 57 mkdir -p $out/share/man/man{1,6} 45 - mv $dest/docs/man/*.1 $out/share/man/man1 46 - mv $dest/docs/man/*.6 $out/share/man/man6 58 + mv ${dest}/docs/man/*.1 $out/share/man/man1 59 + mv ${dest}/docs/man/*.6 $out/share/man/man6 60 + 61 + mv artwork plugins samples ${dest} 47 62 48 63 mkdir -p $out/share 49 64 ln -s ${desktopItem}/share/applications $out/share
+29
pkgs/misc/emulators/mame/emuopts.patch
··· 1 + diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp 2 + index c42fcef848..d1bddae060 100644 3 + --- a/src/emu/emuopts.cpp 4 + +++ b/src/emu/emuopts.cpp 5 + @@ -36,16 +36,16 @@ const options_entry emu_options::s_option_entries[] = 6 + { nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" }, 7 + { OPTION_HOMEPATH, ".", OPTION_STRING, "path to base folder for plugin data (read/write)" }, 8 + { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROM sets and hard disk images" }, 9 + - { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to software definition files" }, 10 + - { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to audio sample sets" }, 11 + - { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" }, 12 + - { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" }, 13 + - { OPTION_INIPATH, ".;ini;ini/presets", OPTION_STRING, "path to ini files" }, 14 + - { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" }, 15 + + { OPTION_HASHPATH ";hash_directory;hash", "hash;@mame@/hash", OPTION_STRING, "path to software definition files" }, 16 + + { OPTION_SAMPLEPATH ";sp", "samples;@mame@/samples", OPTION_STRING, "path to audio sample sets" }, 17 + + { OPTION_ARTPATH, "artwork;@mame@/artwork", OPTION_STRING, "path to artwork files" }, 18 + + { OPTION_CTRLRPATH, "ctrlr;@mame@/ctrlr", OPTION_STRING, "path to controller definitions" }, 19 + + { OPTION_INIPATH, ".;ini;ini/presets;@mame@/ini/presets", OPTION_STRING, "path to ini files" }, 20 + + { OPTION_FONTPATH, ".;@mame@", OPTION_STRING, "path to font files" }, 21 + { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" }, 22 + { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" }, 23 + - { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" }, 24 + - { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to UI translation files" }, 25 + + { OPTION_PLUGINSPATH, "plugins;@mame@/plugins", OPTION_STRING, "path to plugin files" }, 26 + + { OPTION_LANGUAGEPATH, "language;@mame@/language", OPTION_STRING, "path to UI translation files" }, 27 + { OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" }, 28 + 29 + // output directory options