diff --git a/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix index ac11b574ca11..159eefad6662 100644 --- a/pkgs/misc/emulators/ppsspp/default.nix +++ b/pkgs/misc/emulators/ppsspp/default.nix @@ -1,37 +1,43 @@ -{ stdenv, fetchgit, zlib, libpng, qt4, qmake4Hook, pkgconfig -, withGamepads ? true, SDL # SDL is used for gamepad functionality -}: +{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qtmultimedia +, glew, libzip, snappy, zlib, withGamepads ? true, SDL2 }: -assert withGamepads -> (SDL != null); - -let - version = "1.3"; - fstat = x: fn: "-D" + fn + "=" + (if x then "ON" else "OFF"); -in +assert withGamepads -> (SDL2 != null); with stdenv.lib; -stdenv.mkDerivation rec{ - name = "PPSSPP-${version}"; - src = fetchgit { - url = "https://github.com/hrydgard/ppsspp.git"; - rev = "refs/tags/v${version}"; +stdenv.mkDerivation rec { + name = "ppsspp-${version}"; + version = "1.4.2"; + + src = fetchFromGitHub { + owner = "hrydgard"; + repo = "ppsspp"; + rev = "v${version}"; fetchSubmodules = true; - sha256 = "0l8vgdlw657r8gv7rz8iqa6zd9zrbzw10pwhcnahzil7w9qrd03g"; + sha256 = "0m4qkhx7q496sm7ibg2n7rm3npxzfr93iraxgndk0vhfk8vy8w75"; }; - buildInputs = [ zlib libpng qt4 ] - ++ (if withGamepads then [ SDL ] else [ ]); + patchPhase = '' + echo 'const char *PPSSPP_GIT_VERSION = "${src.rev}";' >> git-version.cpp + substituteInPlace UI/NativeApp.cpp --replace /usr/share $out/share + ''; - nativeBuildInputs = [ pkgconfig qmake4Hook ]; + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ qtbase qtmultimedia glew libzip snappy zlib ] + ++ optionals withGamepads [ SDL2 SDL2.dev ]; - qmakeFlags = [ "PPSSPPQt.pro" ]; + cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DUSING_QT_UI=ON" ]; - preConfigure = "cd Qt"; - installPhase = "mkdir -p $out/bin && cp ppsspp $out/bin"; + installPhase = '' + mkdir -p $out/bin $out/share/ppsspp + mv PPSSPPQt $out/bin/ppsspp + mv assets $out/share/ppsspp + ''; + + enableParallelBuilding = true; meta = { - homepage = http://www.ppsspp.org/; - description = "A PSP emulator, the Qt4 version"; + homepage = https://www.ppsspp.org/; + description = "A PSP emulator for Android, Windows, Mac and Linux, written in C++"; license = licenses.gpl2Plus; maintainers = with maintainers; [ fuuzetsu AndersonTorres ]; platforms = platforms.linux ++ platforms.darwin ++ platforms.cygwin; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 3abaa7402fba..9de635058317 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -25,7 +25,7 @@ in mapAliases (rec { accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19 - adobeReader = adobe-reader; + adobeReader = adobe-reader; # added 2013-11-04 aircrackng = aircrack-ng; # added 2016-01-14 ammonite-repl = ammonite; # added 2017-05-02 arduino_core = arduino-core; # added 2015-02-04 @@ -117,6 +117,7 @@ mapAliases (rec { pidgin-with-plugins = pidgin; # added 2016-06 pidginlatexSF = pidginlatex; # added 2014-11-02 poppler_qt5 = libsForQt5.poppler; # added 2015-12-19 + PPSSPP = ppsspp; # added 2017-10-01 prometheus-statsd-bridge = prometheus-statsd-exporter; # added 2017-08-27 qca-qt5 = libsForQt5.qca-qt5; # added 2015-12-19 QmidiNet = qmidinet; # added 2016-05-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0169b338976e..77d047f6f15f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19109,7 +19109,7 @@ with pkgs; pjsip = callPackage ../applications/networking/pjsip { }; - PPSSPP = callPackage ../misc/emulators/ppsspp { SDL = SDL2; }; + ppsspp = libsForQt5.callPackage ../misc/emulators/ppsspp { }; pt = callPackage ../applications/misc/pt { };