applied nixfmt (new version)

This commit is contained in:
2024-09-22 14:45:24 -06:00
parent dd00fb4854
commit b514828594
89 changed files with 2091 additions and 1339 deletions

View File

@@ -1,15 +1,20 @@
{ branch, qt6Packages, fetchFromGitHub, fetchurl }:
{
branch,
qt6Packages,
fetchFromGitHub,
fetchurl,
}:
let
# Fetched from https://api.citra-emu.org/gamedb
# Please make sure to update this when updating citra!
compat-list = fetchurl {
name = "citra-compat-list";
url =
"https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
url = "https://web.archive.org/web/20230807103651/https://api.citra-emu.org/gamedb/";
hash = "sha256-J+zqtWde5NgK2QROvGewtXGRAWUTNSKHNMG6iu9m1fU=";
};
in {
in
{
nightly = qt6Packages.callPackage ./generic.nix rec {
pname = "citra-nightly";
version = "2104";
@@ -24,4 +29,5 @@ in {
inherit branch compat-list;
};
}.${branch}
}
.${branch}

View File

@@ -1,40 +1,83 @@
{ pname, version, src, branch, compat-list, lib, stdenv, cmake, boost
, pkg-config, libusb1, glslang, zstd, libressl, enableSdl2 ? true, SDL2
, enableQt ? true, qtbase, qtmultimedia, wrapQtAppsHook
, enableQtTranslation ? enableQt, qttools, enableWebService ? true
, enableCubeb ? true, cubeb, enableFfmpegAudioDecoder ? true
, enableFfmpegVideoDumper ? true, ffmpeg_4, useDiscordRichPresence ? true
, rapidjson, enableFdk ? false, fdk_aac, python3 }:
assert lib.assertMsg (!enableFfmpegAudioDecoder || !enableFdk)
"Can't enable both enableFfmpegAudioDecoder and enableFdk";
{
pname,
version,
src,
branch,
compat-list,
lib,
stdenv,
cmake,
boost,
pkg-config,
libusb1,
glslang,
zstd,
libressl,
enableSdl2 ? true,
SDL2,
enableQt ? true,
qtbase,
qtmultimedia,
wrapQtAppsHook,
enableQtTranslation ? enableQt,
qttools,
enableWebService ? true,
enableCubeb ? true,
cubeb,
enableFfmpegAudioDecoder ? true,
enableFfmpegVideoDumper ? true,
ffmpeg_4,
useDiscordRichPresence ? true,
rapidjson,
enableFdk ? false,
fdk_aac,
python3,
}:
assert lib.assertMsg (
!enableFfmpegAudioDecoder || !enableFdk
) "Can't enable both enableFfmpegAudioDecoder and enableFdk";
stdenv.mkDerivation rec {
inherit pname version src;
nativeBuildInputs = [ cmake glslang pkg-config python3 ]
++ lib.optionals enableQt [ wrapQtAppsHook ];
nativeBuildInputs = [
cmake
glslang
pkg-config
python3
] ++ lib.optionals enableQt [ wrapQtAppsHook ];
buildInputs = [ boost libusb1 ]
++ lib.optionals enableQt [ qtbase qtmultimedia ]
++ lib.optional enableSdl2 SDL2 ++ lib.optional enableQtTranslation qttools
buildInputs =
[
boost
libusb1
]
++ lib.optionals enableQt [
qtbase
qtmultimedia
]
++ lib.optional enableSdl2 SDL2
++ lib.optional enableQtTranslation qttools
++ lib.optionals enableCubeb cubeb.passthru.backendLibs
++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper)
ffmpeg_4 ++ lib.optional useDiscordRichPresence rapidjson
++ lib.optional (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) ffmpeg_4
++ lib.optional useDiscordRichPresence rapidjson
++ lib.optional enableFdk fdk_aac;
cmakeFlags = [
"-DUSE_SYSTEM_BOOST=ON"
"-DCITRA_WARNINGS_AS_ERRORS=OFF"
"-DCITRA_USE_BUNDLED_FFMPEG=OFF"
"-DCITRA_USE_BUNDLED_QT=OFF"
"-DUSE_SYSTEM_SDL2=ON"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_LIBDIR=lib"
cmakeFlags =
[
"-DUSE_SYSTEM_BOOST=ON"
"-DCITRA_WARNINGS_AS_ERRORS=OFF"
"-DCITRA_USE_BUNDLED_FFMPEG=OFF"
"-DCITRA_USE_BUNDLED_QT=OFF"
"-DUSE_SYSTEM_SDL2=ON"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_LIBDIR=lib"
# We dont want to bother upstream with potentially outdated compat reports
"-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON"
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
] ++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF"
# We dont want to bother upstream with potentially outdated compat reports
"-DCITRA_ENABLE_COMPATIBILITY_REPORTING=ON"
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
]
++ lib.optional (!enableSdl2) "-DENABLE_SDL2=OFF"
++ lib.optional (!enableQt) "-DENABLE_QT=OFF"
++ lib.optional enableQtTranslation "-DENABLE_QT_TRANSLATION=ON"
++ lib.optional (!enableWebService) "-DENABLE_WEB_SERVICE=OFF"
@@ -44,44 +87,42 @@ stdenv.mkDerivation rec {
++ lib.optional useDiscordRichPresence "-DUSE_DISCORD_PRESENCE=ON"
++ lib.optional enableFdk "-DENABLE_FDK=ON";
postPatch = let
branchCaptialized = lib.toUpper (lib.substring 0 1 branch)
+ lib.substring 1 (-1) branch;
in ''
# Fix file not found when looking in var/empty instead of opt
mkdir externals/dynarmic/src/dynarmic/ir/var
ln -s ../opt externals/dynarmic/src/dynarmic/ir/var/empty
postPatch =
let
branchCaptialized = lib.toUpper (lib.substring 0 1 branch) + lib.substring 1 (-1) branch;
in
''
# Fix file not found when looking in var/empty instead of opt
mkdir externals/dynarmic/src/dynarmic/ir/var
ln -s ../opt externals/dynarmic/src/dynarmic/ir/var/empty
# Prep compatibilitylist
ln -s ${compat-list} ./dist/compatibility_list/compatibility_list.json
# Prep compatibilitylist
ln -s ${compat-list} ./dist/compatibility_list/compatibility_list.json
# We already know the submodules are present
substituteInPlace CMakeLists.txt \
--replace "check_submodules_present()" ""
# We already know the submodules are present
substituteInPlace CMakeLists.txt \
--replace "check_submodules_present()" ""
# Add versions
echo 'set(BUILD_FULLNAME "${branchCaptialized} ${version}")' >> CMakeModules/GenerateBuildInfo.cmake
# Add versions
echo 'set(BUILD_FULLNAME "${branchCaptialized} ${version}")' >> CMakeModules/GenerateBuildInfo.cmake
# Devendoring
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
'';
# Devendoring
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
'';
# Fixes https://github.com/NixOS/nixpkgs/issues/171173
postInstall = lib.optionalString (enableCubeb && enableSdl2) ''
wrapProgram "$out/bin/citra" \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath cubeb.passthru.backendLibs
}
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath cubeb.passthru.backendLibs}
'';
meta = {
homepage = "https://citra-emu.org";
description =
"The ${branch} branch of an open-source emulator for the Ninteno 3DS";
description = "The ${branch} branch of an open-source emulator for the Ninteno 3DS";
longDescription = ''
A Nintendo 3DS Emulator written in C++
Using the nightly branch is recommended for general usage.
@@ -91,6 +132,10 @@ stdenv.mkDerivation rec {
mainProgram = if enableQt then "citra-qt" else "citra";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ abbradar ashley ivar ];
maintainers = with lib.maintainers; [
abbradar
ashley
ivar
];
};
}