Skip to content

Commit

Permalink
opengamepadui: init at 0.35.4
Browse files Browse the repository at this point in the history
  • Loading branch information
ShadowApex committed Dec 28, 2024
1 parent 6a6b8e3 commit acee21a
Showing 1 changed file with 117 additions and 0 deletions.
117 changes: 117 additions & 0 deletions pkgs/by-name/op/opengamepadui/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
alsa-lib,
autoPatchelfHook,
cargo,
dbus,
fetchFromGitHub,
gamescope,
gitUpdater,
godot_4,
godot_4-export-templates,
hwdata,
lib,
libGL,
libpulseaudio,
mesa-demos,
pkg-config,
rustPlatform,
stdenv,
udev,
upower,
vulkan-loader,
xorg,
withDebug ? false,
}:

stdenv.mkDerivation (finalAttrs: {
pname = "opengamepadui";
version = "0.35.4";

buildType = if withDebug then "debug" else "release";

src = fetchFromGitHub {
owner = "ShadowBlip";
repo = "OpenGamepadUI";
tag = "v${finalAttrs.version}";
hash = "sha256-YjXGrE2QVKMLgYy1Tv8QPGgSfqZFsr+G17qfjYQXLFg=";
};

cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
sourceRoot = "source/${finalAttrs.cargoRoot}";
hash = "sha256-sTzMewIfKHbmVhSPZgUIzFFz1ahK+PMoQ5oB4GEt8nY=";
};
cargoRoot = "extensions";

nativeBuildInputs = [
autoPatchelfHook
cargo
godot_4
godot_4-export-templates
pkg-config
rustPlatform.cargoSetupHook
];

runtimeDependencies = [
alsa-lib
dbus
gamescope
hwdata
libGL
libpulseaudio
mesa-demos
udev
upower
vulkan-loader
xorg.libX11
xorg.libXcursor
xorg.libXext
xorg.libXi
xorg.libXrandr
xorg.libXres
xorg.libXtst
];

dontStrip = withDebug;

env =
let
versionAndRelease = lib.splitString "-" godot_4.version;
in
{
GODOT = lib.getExe godot_4;
GODOT_VERSION = lib.elemAt versionAndRelease 0;
GODOT_RELEASE = lib.elemAt versionAndRelease 1;
EXPORT_TEMPLATE = "${godot_4-export-templates}";
BUILD_TYPE = "${finalAttrs.buildType}";
};

makeFlags = [ "PREFIX=$(out)" ];

buildFlags = [ "build" ];

preBuild = ''
# Godot looks for export templates in HOME
export HOME=$(mktemp -d)
mkdir -p $HOME/.local/share/godot/export_templates
ln -s "${godot_4-export-templates}" "$HOME/.local/share/godot/export_templates/$GODOT_VERSION.$GODOT_RELEASE"
'';

postInstall = ''
# The Godot binary looks in "../lib" for gdextensions
mkdir -p $out/share/lib
mv $out/share/opengamepadui/*.so $out/share/lib
'';

passthru.updateScript = gitUpdater { rev-prefix = "v"; };

meta = {
description = "Open source gamepad-native game launcher and overlay";
homepage = "https://github.com/ShadowBlip/OpenGamepadUI";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
changelog = "https://github.com/ShadowBlip/OpenGamepadUI/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [ shadowapex ];
mainProgram = "opengamepadui";
};
})

0 comments on commit acee21a

Please sign in to comment.