nixpkgs/pkgs/misc/emulators/mgba/default.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

63 lines
1.9 KiB
Nix

{ lib, stdenv, fetchFromGitHub, makeDesktopItem, wrapQtAppsHook, pkgconfig
, cmake, epoxy, libzip, libelf, libedit, ffmpeg_3, SDL2, imagemagick
, qtbase, qtmultimedia, qttools, minizip }:
let
desktopItem = makeDesktopItem {
name = "mgba";
exec = "mgba-qt";
icon = "mgba";
comment = "A Game Boy Advance Emulator";
desktopName = "mgba";
genericName = "Game Boy Advance Emulator";
categories = "Game;Emulator;";
startupNotify = "false";
};
in stdenv.mkDerivation rec {
pname = "mgba";
version = "0.8.4";
src = fetchFromGitHub {
owner = "mgba-emu";
repo = "mgba";
rev = version;
sha256 = "0nqj4bnn5c2z1bq4bnbw1wznc0wpmq4sy3w8pipd6n6620b9m4qq";
};
nativeBuildInputs = [ wrapQtAppsHook pkgconfig cmake ];
buildInputs = [
epoxy libzip libelf libedit ffmpeg_3 SDL2 imagemagick
qtbase qtmultimedia qttools minizip
];
postInstall = ''
cp -r ${desktopItem}/share/applications $out/share
'';
meta = with lib; {
homepage = "https://mgba.io";
description = "A modern GBA emulator with a focus on accuracy";
longDescription = ''
mGBA is a new Game Boy Advance emulator written in C.
The project started in April 2013 with the goal of being fast
enough to run on lower end hardware than other emulators
support, without sacrificing accuracy or portability. Even in
the initial version, games generally play without problems. It
is loosely based on the previous GBA.js emulator, although very
little of GBA.js can still be seen in mGBA.
Other goals include accurate enough emulation to provide a
development environment for homebrew software, a good workflow
for tool-assist runners, and a modern feature set for emulators
that older emulators may not support.
'';
license = licenses.mpl20;
maintainers = with maintainers; [ MP2E AndersonTorres ];
platforms = platforms.linux;
};
}