mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-12 00:33:10 +00:00
9c86dfdd61
This solves an accidental infinite recursion in wrapper generation caused by using makeWrapper on the same input and output path
109 lines
2.2 KiB
Nix
109 lines
2.2 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitHub
|
|
, scons
|
|
, pkg-config
|
|
, udev
|
|
, libX11
|
|
, libXcursor
|
|
, libXinerama
|
|
, libXrandr
|
|
, libXrender
|
|
, libpulseaudio
|
|
, libXi
|
|
, libXext
|
|
, libXfixes
|
|
, freetype
|
|
, openssl
|
|
, alsa-lib
|
|
, alsa-plugins
|
|
, makeWrapper
|
|
, libGLU
|
|
, zlib
|
|
, yasm
|
|
, withUdev ? true
|
|
}:
|
|
|
|
let
|
|
options = {
|
|
touch = libXi != null;
|
|
pulseaudio = false;
|
|
udev = withUdev;
|
|
};
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "godot";
|
|
version = "3.5";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "godotengine";
|
|
repo = "godot";
|
|
rev = "${version}-stable";
|
|
sha256 = "sha256-aU5cTiz7OaM0fsv0EzJDUA1Es+Ei63CKLE6GVspJexc=";
|
|
};
|
|
|
|
nativeBuildInputs = [ pkg-config makeWrapper ];
|
|
buildInputs = [
|
|
scons
|
|
udev
|
|
libX11
|
|
libXcursor
|
|
libXinerama
|
|
libXrandr
|
|
libXrender
|
|
libXi
|
|
libXext
|
|
libXfixes
|
|
freetype
|
|
openssl
|
|
alsa-lib
|
|
libpulseaudio
|
|
libGLU
|
|
zlib
|
|
yasm
|
|
];
|
|
|
|
patches = [ ./pkg_config_additions.patch ./dont_clobber_environment.patch ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
sconsFlags = "target=release_debug platform=x11";
|
|
preConfigure = ''
|
|
sconsFlags+=" ${
|
|
lib.concatStringsSep " "
|
|
(lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)
|
|
}"
|
|
'';
|
|
|
|
outputs = [ "out" "dev" "man" ];
|
|
|
|
installPhase = ''
|
|
mkdir -p "$out/bin"
|
|
cp bin/godot.* $out/bin/godot
|
|
|
|
wrapProgram "$out/bin/godot" \
|
|
--set ALSA_PLUGIN_DIR ${alsa-plugins}/lib/alsa-lib
|
|
|
|
mkdir "$dev"
|
|
cp -r modules/gdnative/include $dev
|
|
|
|
mkdir -p "$man/share/man/man6"
|
|
cp misc/dist/linux/godot.6 "$man/share/man/man6/"
|
|
|
|
mkdir -p "$out"/share/{applications,icons/hicolor/scalable/apps}
|
|
cp misc/dist/linux/org.godotengine.Godot.desktop "$out/share/applications/"
|
|
cp icon.svg "$out/share/icons/hicolor/scalable/apps/godot.svg"
|
|
cp icon.png "$out/share/icons/godot.png"
|
|
substituteInPlace "$out/share/applications/org.godotengine.Godot.desktop" \
|
|
--replace "Exec=godot" "Exec=$out/bin/godot"
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://godotengine.org";
|
|
description = "Free and Open Source 2D and 3D game engine";
|
|
license = licenses.mit;
|
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
|
maintainers = with maintainers; [ twey ];
|
|
};
|
|
}
|