diff --git a/pkgs/development/tools/godot/4/default.nix b/pkgs/development/tools/godot/4/default.nix index 13ccfcc80964..22b14dd283b3 100644 --- a/pkgs/development/tools/godot/4/default.nix +++ b/pkgs/development/tools/godot/4/default.nix @@ -9,11 +9,11 @@ , libX11 , libXcursor , libXinerama -, libXi -, libXrandr , libXext +, libXrandr +, libXrender +, libXi , libXfixes -, libGLU , freetype , alsa-lib , libpulseaudio @@ -21,6 +21,9 @@ , speechd , fontconfig , udev +, withPlatform ? "linuxbsd" +, withTarget ? "editor" +, withPrecision ? "single" , withPulseaudio ? false , withDbus ? true , withSpeechd ? false @@ -29,9 +32,16 @@ , withTouch ? true }: +assert lib.asserts.assertOneOf "withPrecision" withPrecision [ "single" "double" ]; + let - # Options from godot/platform/linuxbsd/detect.py options = { + # Options from 'godot/SConstruct' + platform = withPlatform; + target = withTarget; + precision = withPrecision; # Floating-point precision level + + # Options from 'godot/platform/linuxbsd/detect.py' pulseaudio = withPulseaudio; dbus = withDbus; # Use D-Bus to handle screensaver and portal desktop settings speechd = withSpeechd; # Use Speech Dispatcher for Text-to-Speech support @@ -42,13 +52,13 @@ let in stdenv.mkDerivation rec { pname = "godot"; - version = "4.0-beta3"; + version = "4.0-beta10"; src = fetchFromGitHub { owner = "godotengine"; repo = "godot"; - rev = "01ae26d31befb6679ecd92cd3c73aa5a76162e95"; - sha256 = "sha256-Q+zMviGevezjcQKJPOm7zAu4liJ5z8Rl73TYmjRR3MY="; + rev = "d0398f62f08ce0cfba80990b21c6af4181f93fe9"; + sha256 = "sha256-h4DpK7YC7/qMc6GAD2nvNVmrlGjKT5d7OK+1NcuZCMg="; }; nativeBuildInputs = [ @@ -59,27 +69,26 @@ stdenv.mkDerivation rec { buildInputs = [ scons - libGLU + ] + ++ runtimeDependencies; + + runtimeDependencies = [ libX11 libXcursor libXinerama - libXi - libXrandr libXext + libXrandr + libXrender + libXi libXfixes - ] - ++ runtimeDependencies - # Necessary to make godot see fontconfig.lib and dbus.lib - ++ lib.optional withFontconfig fontconfig - ++ lib.optional withDbus dbus; - - runtimeDependencies = [ - vulkan-loader alsa-lib + vulkan-loader ] ++ lib.optional withPulseaudio libpulseaudio + ++ lib.optional withDbus dbus ++ lib.optional withDbus dbus.lib ++ lib.optional withSpeechd speechd + ++ lib.optional withFontconfig fontconfig ++ lib.optional withFontconfig fontconfig.lib ++ lib.optional withUdev udev; @@ -91,7 +100,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - sconsFlags = [ "platform=linuxbsd target=editor production=true" ]; + # Options from 'godot/SConstruct' and 'godot/platform/linuxbsd/detect.py' + sconsFlags = [ "production=true" ]; preConfigure = '' sconsFlags+=" ${ lib.concatStringsSep " " diff --git a/pkgs/development/tools/godot/4/xfixes.patch b/pkgs/development/tools/godot/4/xfixes.patch index b3d0b7aa3cc5..df5c914d7fd6 100644 --- a/pkgs/development/tools/godot/4/xfixes.patch +++ b/pkgs/development/tools/godot/4/xfixes.patch @@ -1,12 +1,12 @@ diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py -index ac69f3806b..14acbf5c58 100644 +index 844b15e9fb..0c8bee1757 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py -@@ -191,6 +191,7 @@ def configure(env: "Environment"): - env.ParseConfig("pkg-config xrandr --cflags --libs") - env.ParseConfig("pkg-config xrender --cflags --libs") - env.ParseConfig("pkg-config xi --cflags --libs") -+ env.ParseConfig("pkg-config xfixes --cflags --libs") +@@ -192,6 +192,7 @@ def configure(env: "Environment"): + env.ParseConfig("pkg-config xrandr --cflags") + env.ParseConfig("pkg-config xrender --cflags") + env.ParseConfig("pkg-config xi --cflags") ++ env.ParseConfig("pkg-config xfixes --cflags") if env["touch"]: env.Append(CPPDEFINES=["TOUCH_ENABLED"])