Created
June 27, 2024 17:46
-
-
Save whazor/89a1c22ad7ad526eb33004f13be53a23 to your computer and use it in GitHub Desktop.
attempt of building opengamepadui
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
outputs = { self, nixpkgs }: { | |
defaultPackage.x86_64-linux = self.packages.x86_64-linux.opengamepadui; | |
packages.x86_64-linux.opengamepadui = | |
let | |
pkgs = import nixpkgs { system = "x86_64-linux"; }; | |
src = pkgs.fetchFromGitHub { | |
owner = "ShadowBlip"; | |
repo = "OpenGamepadUI"; | |
rev = "v0.32.8"; | |
sha256 = "sha256-BFtuyCQcqwF1f1bcSzM3lw/UR29PkHWbnEk7k4ACrBE="; | |
}; | |
# we need to run make import first as it is so slow | |
importAssets = pkgs.stdenv.mkDerivation { | |
inherit src; | |
name = "opengamepadui-import-assets"; | |
buildInputs = [ | |
pkgs.godot_4 | |
pkgs.wget | |
]; | |
configurePhase = ""; | |
buildPhase = '' | |
export HOME=$(pwd) | |
export GODOT=${pkgs.godot_4}/bin/godot4 | |
export EXPORT_TEMPLATE=${pkgs.godot_4-export-templates}/linux_debug.x86_64 | |
make import | |
mv $HOME/.godot $out/ | |
exit 0 | |
''; | |
installPhase = ""; | |
checkPhase = ""; | |
}; | |
# convert 4.2.2-stable to 4.2.2.stable | |
godot_version = builtins.replaceStrings ["-"] ["."] pkgs.godot_4.version; | |
in | |
pkgs.stdenv.mkDerivation { | |
name = "opengamepadui"; | |
inherit src; | |
buildInputs = [ | |
pkgs.gamescope | |
pkgs.libgcc | |
pkgs.glibc | |
pkgs.libevdev | |
pkgs.xorg.libX11 | |
pkgs.xorg.libXau | |
pkgs.xorg.libxcb | |
pkgs.xorg.libXdmcp | |
pkgs.xorg.libXext | |
pkgs.xorg.libXres | |
pkgs.godot_4 | |
pkgs.wget | |
pkgs.fontconfig | |
# pkgs.libdbusmenu # unsure | |
pkgs.gcc.cc.lib | |
# pkgs.libptytty | |
# Optional packages; include these if needed | |
# pkgs.ryzenadj | |
# pkgs.mangoapp | |
# pkgs.wireplumber | |
# pkgs.networkmanager | |
# pkgs.firejail | |
]; | |
nativeBuildInputs = [ | |
pkgs.dbus.lib | |
pkgs.gcc.cc.lib pkgs.xorg.libX11 | |
# libXRes.so.1 | |
pkgs.xorg.libXres | |
pkgs.xorg.libXtst | |
pkgs.fontconfig | |
# this also does not work: | |
# pkgs.autoPatchelfHook | |
]; | |
buildPhase ='' | |
export HOME=$(pwd) | |
export GODOT=${pkgs.godot_4}/bin/godot4 | |
export EXPORT_TEMPLATE=${pkgs.godot_4-export-templates}/linux_debug.x86_64 | |
export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath [ | |
pkgs.dbus.lib | |
pkgs.gcc.cc.lib pkgs.xorg.libX11 | |
# libXRes.so.1 | |
pkgs.xorg.libXres | |
pkgs.xorg.libXtst | |
]}:$LD_LIBRARY_PATH | |
cp -R ${importAssets}/ $HOME/.godot/ | |
mkdir -p $HOME/.godot/editor | |
chmod -R 755 $HOME/.godot | |
mkdir -p $HOME/.godot/app_userdata/opengamepadui | |
export GODOT_USER_DIR=$HOME/.godot/app_userdata/opengamepadui | |
# opengamepadui> ERROR: Config File "user://gut_temp_directory/gut_editor_config.json" does not exist. | |
mkdir -p $GODOT_USER_DIR/gut_temp_directory | |
echo '{}' > $GODOT_USER_DIR/gut_temp_directory/gut_editor_config.json | |
echo '{}' > $GODOT_USER_DIR/.gut_editor_config.json | |
echo '{}' > .gut_editor_config.json | |
mkdir -p $HOME/.local/share/godot/export_templates/${godot_version}/ | |
cp -R ${pkgs.godot_4-export-templates}/* $HOME/.local/share/godot/export_templates/${godot_version}/ | |
make build | |
''; | |
installPhase = '' | |
mkdir -p $out/bin | |
find . > $out/manifest | |
cp -R build/* $out/bin/ | |
chmod -R 755 $out/bin | |
''; | |
checkPhase = ''''; # no tests | |
}; | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment