166 lines
3.4 KiB
Nix
166 lines
3.4 KiB
Nix
{
|
|
fpp-config,
|
|
userDir ? "/home/ooks/.config/project-plus",
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
cmake,
|
|
pkg-config,
|
|
wrapQtAppsHook,
|
|
fetchpatch,
|
|
copyDesktopItems,
|
|
alsa-lib,
|
|
bluez,
|
|
bzip2,
|
|
cubeb,
|
|
curl,
|
|
ffmpeg,
|
|
fmt_10,
|
|
glib,
|
|
gtk2,
|
|
gtk3,
|
|
gtest,
|
|
hidapi,
|
|
enet,
|
|
libevdev,
|
|
libGL,
|
|
libiconv,
|
|
libpulseaudio,
|
|
libspng,
|
|
libusb1,
|
|
libXdmcp,
|
|
libXext,
|
|
libXi,
|
|
libXrandr,
|
|
lz4,
|
|
lzo,
|
|
mbedtls_2,
|
|
miniupnpc,
|
|
minizip-ng,
|
|
openal,
|
|
pugixml,
|
|
qtbase,
|
|
qtsvg,
|
|
SDL2,
|
|
sfml,
|
|
udev,
|
|
vulkan-loader,
|
|
xorg,
|
|
xxHash,
|
|
xz,
|
|
}: let
|
|
rev = "f245e1ee105eeb5c18653657cd8b29415dc37243";
|
|
version = "3.0.5";
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "project-plus";
|
|
inherit version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "jlambert360";
|
|
repo = "Ishiiruka";
|
|
hash = "sha256-UmIaOBHMRsl9FnfowAQGBjB83wpVRhoO0gzLed09lmk";
|
|
inherit rev;
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch
|
|
{
|
|
url = "https://github.com/dolphin-emu/dolphin/commit/3da2e15e6b95f02f66df461e87c8b896e450fdab.patch";
|
|
hash = "sha256-+8yGF412wQUYbyEuYWd41pgOgEbhCaezexxcI5CNehc=";
|
|
})
|
|
];
|
|
|
|
strictDeps = true;
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
wrapQtAppsHook
|
|
copyDesktopItems
|
|
];
|
|
buildInputs = [
|
|
bzip2
|
|
cubeb
|
|
curl
|
|
enet
|
|
ffmpeg
|
|
fmt_10
|
|
gtest
|
|
hidapi
|
|
libiconv
|
|
libpulseaudio
|
|
libspng
|
|
libXdmcp
|
|
libXi
|
|
lz4
|
|
lzo
|
|
libusb1
|
|
mbedtls_2
|
|
miniupnpc
|
|
minizip-ng
|
|
openal
|
|
pugixml
|
|
qtbase
|
|
qtsvg
|
|
SDL2
|
|
sfml
|
|
xxHash
|
|
xz
|
|
alsa-lib
|
|
bluez
|
|
libevdev
|
|
libGL
|
|
libXrandr
|
|
udev
|
|
vulkan-loader
|
|
libXext
|
|
glib
|
|
gtk2
|
|
gtk3
|
|
xorg.libXinerama
|
|
xorg.libXxf86vm
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DLINUX_LOCAL_DEV=true"
|
|
"-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-3.0/include"
|
|
"-DGTK3_GDKCONFIG_INCLUDE_DIR=${gtk3.out}/lib/gtk-3.0/include"
|
|
"-DGTK3_INCLUDE_DIRS=${gtk3.out}/lib/gtk-3.0"
|
|
"-DENABLE_LTO=True"
|
|
"-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
|
|
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
|
|
"-DGTK2_INCLUDE_DIRS=${gtk2}/lib/gtk-2.0"
|
|
];
|
|
|
|
qtWrapperArgs = [
|
|
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [vulkan-loader]}"
|
|
"--set QT_QPA_PLATFORM xcb"
|
|
"--add-flags -u"
|
|
"--add-flags ${toString userDir}"
|
|
];
|
|
|
|
patchPhase = ''
|
|
sed -i 's|\$\\{GIT_EXECUTABLE} rev-parse HEAD|echo ${rev}|g' CMakeLists.txt # --set scm_rev_str everywhere to actual commit hash when downloaded
|
|
sed -i 's|\$\\{GIT_EXECUTABLE} describe --always --long --dirty|echo FM v${version}|g' CMakeLists.txt # ensures compatibility w/ netplay
|
|
sed -i 's|\$\\{GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD|echo HEAD|g' CMakeLists.txt
|
|
sed -i 's|#include <optional>|#include <optional>\n#include <string>|g' Source/Core/DiscIO/DiscExtractor.h
|
|
cp Externals/wxWidgets3/include/wx Source/Core/ -r
|
|
cp Externals/wxWidgets3/wx/* Source/Core/wx/
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
cp -rf ${fpp-config}/Binaries/Sys Binaries/
|
|
chmod -R 755 Binaries/
|
|
|
|
mkdir -p $out
|
|
cp Binaries/ $out/ -r
|
|
|
|
mkdir -p $out/bin
|
|
ln -s $out/Binaries/ishiiruka $out/bin/faster-project-plus
|
|
|
|
runHook postInstall
|
|
'';
|
|
}
|