mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-17 18:47:57 +03:00
Merge pull request #204370 from atorres1985-contrib/mame-refactor
mame: refactor
This commit is contained in:
commit
7b7588edb1
@ -10,18 +10,18 @@
|
||||
- { OPTION_CTRLRPATH, "ctrlr", core_options::option_type::STRING, "path to controller definitions" },
|
||||
- { OPTION_INIPATH, ".;ini;ini/presets", core_options::option_type::STRING, "path to ini files" },
|
||||
- { OPTION_FONTPATH, ".", core_options::option_type::STRING, "path to font files" },
|
||||
+ { OPTION_HASHPATH ";hash_directory;hash", "hash;@mame@/hash", core_options::option_type::STRING, "path to software definition files" },
|
||||
+ { OPTION_SAMPLEPATH ";sp", "samples;@mame@/samples", core_options::option_type::STRING, "path to audio sample sets" },
|
||||
+ { OPTION_ARTPATH, "artwork;@mame@/artwork", core_options::option_type::STRING, "path to artwork files" },
|
||||
+ { OPTION_CTRLRPATH, "ctrlr;@mame@/ctrlr", core_options::option_type::STRING, "path to controller definitions" },
|
||||
+ { OPTION_INIPATH, ".;ini;ini/presets;@mame@/ini/presets", core_options::option_type::STRING, "path to ini files" },
|
||||
+ { OPTION_FONTPATH, ".;@mame@", core_options::option_type::STRING, "path to font files" },
|
||||
+ { OPTION_HASHPATH ";hash_directory;hash", "hash;@mamePath@/hash", core_options::option_type::STRING, "path to software definition files" },
|
||||
+ { OPTION_SAMPLEPATH ";sp", "samples;@mamePath@/samples", core_options::option_type::STRING, "path to audio sample sets" },
|
||||
+ { OPTION_ARTPATH, "artwork;@mamePath@/artwork", core_options::option_type::STRING, "path to artwork files" },
|
||||
+ { OPTION_CTRLRPATH, "ctrlr;@mamePath@/ctrlr", core_options::option_type::STRING, "path to controller definitions" },
|
||||
+ { OPTION_INIPATH, ".;ini;ini/presets;@mamePath@/ini/presets", core_options::option_type::STRING, "path to ini files" },
|
||||
+ { OPTION_FONTPATH, ".;@mamePath@", core_options::option_type::STRING, "path to font files" },
|
||||
{ OPTION_CHEATPATH, "cheat", core_options::option_type::STRING, "path to cheat files" },
|
||||
{ OPTION_CROSSHAIRPATH, "crosshair", core_options::option_type::STRING, "path to crosshair files" },
|
||||
- { OPTION_PLUGINSPATH, "plugins", core_options::option_type::STRING, "path to plugin files" },
|
||||
- { OPTION_LANGUAGEPATH, "language", core_options::option_type::STRING, "path to UI translation files" },
|
||||
+ { OPTION_PLUGINSPATH, "plugins;@mame@/plugins", core_options::option_type::STRING, "path to plugin files" },
|
||||
+ { OPTION_LANGUAGEPATH, "language;@mame@/language", core_options::option_type::STRING, "path to UI translation files" },
|
||||
+ { OPTION_PLUGINSPATH, "plugins;@mamePath@/plugins", core_options::option_type::STRING, "path to plugin files" },
|
||||
+ { OPTION_LANGUAGEPATH, "language;@mamePath@/language", core_options::option_type::STRING, "path to UI translation files" },
|
||||
{ OPTION_SWPATH, "software", core_options::option_type::STRING, "path to loose software" },
|
||||
|
||||
// output directory options
|
@ -1,24 +1,24 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, alsa-lib
|
||||
, copyDesktopItems
|
||||
, CoreAudioKit
|
||||
, expat
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, alsa-lib
|
||||
, SDL2
|
||||
, SDL2_ttf
|
||||
, copyDesktopItems
|
||||
, expat
|
||||
, flac
|
||||
, fontconfig
|
||||
, ForceFeedback
|
||||
, glm
|
||||
, installShellFiles
|
||||
, libXi
|
||||
, libXinerama
|
||||
, libjpeg
|
||||
, libpcap
|
||||
, libpulseaudio
|
||||
, libXi
|
||||
, libXinerama
|
||||
, lua5_3
|
||||
, makeDesktopItem
|
||||
, makeWrapper
|
||||
, papirus-icon-theme
|
||||
, pkg-config
|
||||
, portaudio
|
||||
, portmidi
|
||||
@ -26,31 +26,26 @@
|
||||
, python3
|
||||
, qtbase
|
||||
, rapidjson
|
||||
, SDL2
|
||||
, SDL2_ttf
|
||||
, sqlite
|
||||
, utf8proc
|
||||
, which
|
||||
, writeScript
|
||||
, zlib
|
||||
, darwin
|
||||
}:
|
||||
|
||||
let
|
||||
# Get icon from Arch Linux package
|
||||
icon = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/archlinux/svntogit-community/614b24ef3856cb52b5cafc386b0f77923cbc9156/trunk/mame.svg";
|
||||
sha256 = "sha256-F8RCyTPXZBdeTOHeUKgMDC3dXXM8rwnDzV5rppesQ/Q=";
|
||||
};
|
||||
dest = "$out/opt/mame";
|
||||
inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mame";
|
||||
version = "0.250";
|
||||
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mamedev";
|
||||
repo = "mame";
|
||||
rev = "mame${builtins.replaceStrings [ "." ] [ "" ] version}";
|
||||
rev = "mame${srcVersion}";
|
||||
sha256 = "sha256-jexs/1ovRk9Is5orD7hT9fN+dYm+WA+57aZ6JH7zjL4=";
|
||||
};
|
||||
|
||||
@ -109,15 +104,17 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
patches = [
|
||||
# by default MAME assumes that paths with stock resources
|
||||
# are relative and that you run MAME changing to
|
||||
# install directory, so we add absolute paths here
|
||||
./emuopts.patch
|
||||
# by default MAME assumes that paths with stock resources are relative and
|
||||
# that you run MAME changing to install directory, so we add absolute paths
|
||||
# here
|
||||
./001-use-absolute-paths.diff
|
||||
];
|
||||
|
||||
# Since the bug described in https://github.com/NixOS/nixpkgs/issues/135438,
|
||||
# it is not possible to use substituteAll
|
||||
postPatch = ''
|
||||
substituteInPlace src/emu/emuopts.cpp \
|
||||
--subst-var-by mame ${dest}
|
||||
--subst-var-by mamePath "$out/opt/mame"
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
@ -134,23 +131,26 @@ stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
# TODO: copy shaders from src/osd/modules/opengl/shader/glsl*.*h
|
||||
# to the final package after we figure out how they work
|
||||
installPhase = let
|
||||
icon = "${papirus-icon-theme}/share/icons/Papirus/32x32/apps/mame.svg";
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
# mame
|
||||
mkdir -p ${dest}
|
||||
mkdir -p $out/opt/mame
|
||||
|
||||
install -Dm755 mame -t $out/bin
|
||||
install -Dm644 ${icon} $out/share/icons/hicolor/scalable/apps/mame.svg
|
||||
installManPage docs/man/*.1 docs/man/*.6
|
||||
cp -ar {artwork,bgfx,plugins,language,ctrlr,keymaps,hash} ${dest}
|
||||
# TODO: copy shaders from src/osd/modules/opengl/shader/glsl*.*h
|
||||
# to the final package after we figure out how they work
|
||||
cp -ar {artwork,bgfx,plugins,language,ctrlr,keymaps,hash} $out/opt/mame
|
||||
|
||||
# mame-tools
|
||||
for _i in castool chdman floptool imgtool jedutil ldresample ldverify nltool nlwav pngcmp regrep romcmp \
|
||||
split srcclean testkeys unidasm; do
|
||||
install -Dm755 $_i -t $tools/bin
|
||||
for _tool in castool chdman floptool imgtool jedutil ldresample ldverify \
|
||||
nltool nlwav pngcmp regrep romcmp split srcclean testkeys \
|
||||
unidasm; do
|
||||
install -Dm755 $_tool -t $tools/bin
|
||||
done
|
||||
mv $tools/bin/{,mame-}split
|
||||
|
||||
@ -176,11 +176,26 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Is a multi-purpose emulation framework";
|
||||
homepage = "https://www.mamedev.org/";
|
||||
description = "A multi-purpose emulation framework";
|
||||
longDescription = ''
|
||||
MAME's purpose is to preserve decades of software history. As electronic
|
||||
technology continues to rush forward, MAME prevents this important
|
||||
"vintage" software from being lost and forgotten. This is achieved by
|
||||
documenting the hardware and how it functions. The source code to MAME
|
||||
serves as this documentation. The fact that the software is usable serves
|
||||
primarily to validate the accuracy of the documentation (how else can you
|
||||
prove that you have recreated the hardware faithfully?). Over time, MAME
|
||||
(originally stood for Multiple Arcade Machine Emulator) absorbed the
|
||||
sister-project MESS (Multi Emulator Super System), so MAME now documents a
|
||||
wide variety of (mostly vintage) computers, video game consoles and
|
||||
calculators, in addition to the arcade video games that were its initial
|
||||
focus.
|
||||
'';
|
||||
changelog = "https://github.com/mamedev/mame/releases/download/mame${srcVersion}/whatsnew_${srcVersion}.txt";
|
||||
license = with licenses; [ bsd3 gpl2Plus ];
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ thiagokokada ];
|
||||
platforms = platforms.unix;
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
@ -2024,11 +2024,11 @@ with pkgs;
|
||||
|
||||
maiko = callPackage ../applications/emulators/maiko { };
|
||||
|
||||
mame = libsForQt5.callPackage ../applications/emulators/mame {
|
||||
inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
|
||||
};
|
||||
mame = libsForQt5.callPackage ../applications/emulators/mame { };
|
||||
|
||||
mame-tools = (lib.getOutput "tools" mame);
|
||||
mame-tools = lib.addMetaAttrs {
|
||||
description = mame.meta.description + " (tools only)";
|
||||
} (lib.getOutput "tools" mame);
|
||||
|
||||
mednafen = callPackage ../applications/emulators/mednafen {
|
||||
inherit (darwin) libiconv;
|
||||
|
Loading…
Reference in New Issue
Block a user