forked from mirrors/nixpkgs
citra: devendor some packages
and other improvements
This commit is contained in:
parent
e1574724c1
commit
14c13a6a77
|
@ -1,27 +1,76 @@
|
|||
{ mkDerivation, lib, fetchgit, cmake, SDL2, qtbase, qtmultimedia, boost
|
||||
, wrapQtAppsHook }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, wrapQtAppsHook
|
||||
, SDL2
|
||||
, qtbase
|
||||
, qtmultimedia
|
||||
, boost17x
|
||||
, libpulseaudio
|
||||
, pkg-config
|
||||
, libusb1
|
||||
, zstd
|
||||
, libressl
|
||||
, alsa-lib
|
||||
, rapidjson
|
||||
, aacHleDecoding ? true
|
||||
, fdk_aac
|
||||
, ffmpeg-full
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
stdenv.mkDerivation {
|
||||
pname = "citra";
|
||||
version = "2021-11-01";
|
||||
|
||||
# Submodules
|
||||
src = fetchgit {
|
||||
url = "https://github.com/citra-emu/citra";
|
||||
src = fetchFromGitHub {
|
||||
owner = "citra-emu";
|
||||
repo = "citra";
|
||||
rev = "5a7d80172dd115ad9bc6e8e85cee6ed9511c48d0";
|
||||
sha256 = "sha256-vy2JMizBsnRK9NBEZ1dxT7fP/HFhOZSsC+5P+Dzi27s=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake wrapQtAppsHook ];
|
||||
buildInputs = [ SDL2 qtbase qtmultimedia boost ];
|
||||
nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ];
|
||||
buildInputs = [
|
||||
SDL2
|
||||
qtbase
|
||||
qtmultimedia
|
||||
libpulseaudio
|
||||
boost17x
|
||||
libusb1
|
||||
alsa-lib
|
||||
rapidjson # for discord-rpc
|
||||
] ++ lib.optional aacHleDecoding [ fdk_aac ffmpeg-full ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DUSE_SYSTEM_BOOST=ON"
|
||||
"-DUSE_DISCORD_PRESENCE=ON"
|
||||
] ++ lib.optionals aacHleDecoding [
|
||||
"-DENABLE_FFMPEG_AUDIO_DECODER=ON"
|
||||
"-DCITRA_USE_BUNDLED_FFMPEG=OFF"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# we already know the submodules are present
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "check_submodules_present()" ""
|
||||
|
||||
preConfigure = ''
|
||||
# Trick configure system.
|
||||
sed -n 's,^ *path = \(.*\),\1,p' .gitmodules | while read path; do
|
||||
mkdir "$path/.git"
|
||||
mkdir "$path/.git"
|
||||
done
|
||||
|
||||
rm -rf externals/zstd externals/libressl
|
||||
cp -r ${zstd.src} externals/zstd
|
||||
tar xf ${libressl.src} -C externals/
|
||||
mv externals/${libressl.name} externals/libressl
|
||||
chmod -R a+w externals/zstd
|
||||
'';
|
||||
|
||||
# Todo: cubeb audio backend (the default one) doesn't work on the SDL interface.
|
||||
# Note that the two interfaces have two separate configuration files.
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://citra-emu.org";
|
||||
description = "An open-source emulator for the Nintendo 3DS";
|
||||
|
|
Loading…
Reference in a new issue