commit:     9349811442b737e19289f92fadaf3bfce6dd8519
Author:     dsaf <ghostyn678+git <AT> gmail <DOT> com>
AuthorDate: Tue Sep 16 23:03:36 2025 +0000
Commit:     David Roman <davidroman96 <AT> gmail <DOT> com>
CommitDate: Tue Sep 16 23:03:36 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=93498114

dev-games/godot-dotnet: add 4.5

Signed-off-by: dsaf <ghostyn678+git <AT> gmail.com>

 dev-games/godot-dotnet/Manifest                    |   7 +
 .../files/godot-dotnet-4.5-scons.patch             |  16 +
 dev-games/godot-dotnet/godot-dotnet-4.5.ebuild     | 523 +++++++++++++++++++++
 3 files changed, 546 insertions(+)

diff --git a/dev-games/godot-dotnet/Manifest b/dev-games/godot-dotnet/Manifest
index 4cc081e7fd..6d449a71f8 100644
--- a/dev-games/godot-dotnet/Manifest
+++ b/dev-games/godot-dotnet/Manifest
@@ -1,9 +1,15 @@
 DIST DiffPlex.1.5.0.nupkg 42162 BLAKE2B 
765876495af5b34387c999df54c67f4c5e79d6c5ed33bdccbd3fa6eabfc670b2c983e62daceed6349133024a3d805075e110eebff7470fe9425295de2105adc4
 SHA512 
8c25594b1bb32950977df3c4282e6aad0abf939496db167b764500afc330d9137f044073466ea3c99d88ae274e0addaf0b877df9dce9af9ba0dd660e941fa53c
 DIST Godot.SourceGenerators.4.4.1.nupkg 58404 BLAKE2B 
8a043bb40e43520de78d13d66d8bb7f4c588d8c38591d90426935d77966c141ecd2bb09bb54b00beb184d4910aed4e478ab3fc576c9645912dfda8acb34daa04
 SHA512 
84873d27957e6cc725cbc1c86c0bbc948281a7b8cf6e19de92d119e95a5ac15d12162925e409b2a01279bd8e2150d58383c47c1b0cc7a401aa3882877af207a5
+DIST Godot.SourceGenerators.4.5.0.nupkg 58973 BLAKE2B 
8360fa306ae34c90fd5c5060b4226963eed5c8e9704100d20717112074f3a83ca1336d7fee954151f33e46eb75372999aa62b20036abf67d9921143d702d1e7d
 SHA512 
0ad69c11d976369710c80c2d404cda3e1a617daf28e23bcb5038570088105ef69d464147679bc9a8984538a87b23941bfc0b71749f85cbd7936790224bce1b98
 DIST GodotSharp.4.4.1.nupkg 2906823 BLAKE2B 
6d8abf41ad90543f3c7f909e457cf2982c74c686dce3afb02f8f6e40104e68f837e99d97a7785918b2c92092f89767587bb5d45da39b81e2b789c9f5fc4e6df4
 SHA512 
04ab1e371f277670c5254adc926927dcb7e870eb1a64984da03acdf6d9835d227acf12bc376e7a571792dd82097ac5a7a776d2df51e02c99199c6a6f4952c450
+DIST GodotSharp.4.5.0.nupkg 3028398 BLAKE2B 
d47f41f527bc12b92297deee7bfcb252d1db347e1cb6877555e5471238541e2c979d619e14f2900ed59ba030e3a4f2544e4ba5d5ffae1d6299176a212746cf28
 SHA512 
9f2c437bcfc5c4315d89f2d8e844fc10d5f9a88915a986acdb3867b100512b10b17c509fa0fca61aadc483bd37e6e7c8ed85ad8a421b672d8f06317108212bd4
+DIST GodotTools.IdeMessaging.1.1.2.nupkg 34674 BLAKE2B 
09af425bcbda47cbe13c9a59a16b8e0d3f4e06334d09767e0087a8991c712cd611181b73e5747ad4e5e7143ce666ae3da3d34b69a50b2bfcaef0b25c52f66a18
 SHA512 
9e7626e706b3f287eeb9e762255bb907e4558107ea9909de7797a4c0c45362147fb3ba86509d2910c67c7b43dbd13aa07ce25439c4cc3a6c8d53f5ca1a533793
 DIST Humanizer.Core.2.14.1.nupkg 538179 BLAKE2B 
c3e3c3c7d3fb3484dc85f5eaf25ff4f4428cd36b3458c5664fa7c29cb62ea291aded48a369823459d684ff79ce63a16650dcd37e8cd123c23ab943faea92cfd7
 SHA512 
cb3a8653f1ca34b67d52fafa92f49cdf0615fd2e4efc8be4948516e5617b32e8af18b63cc12e486672cf92dec3d4a5bc12dd849e5d08dcbce0daf196336e17b3
 DIST Humanizer.Core.2.2.0.nupkg 104728 BLAKE2B 
6c383abbbed9250f2a7eeec4478ead8f23ad53aa62a5b0f22e71fed9157aa6644a9a7518842d637885b7b63a4300754e1a7e9f3f9968725607ad30bf18e27a21
 SHA512 
e232459f914c8e7fc3f8dee69a85e66beb8c44515d4c83a976ee24084a91f32aae61c6f845ff38edcae02d0bcab44f9ec253277dccf2f4ae7e82235047bc6ade
 DIST JetBrains.Annotations.2019.1.3.nupkg 109848 BLAKE2B 
55c50a110ce3206d39160e8b731369d75f469a627131e0f8987795ce01c93f0b3a86ae8605078b0afdd3b3f9d9eee491ad299928bdb51837bce27e1cab378adb
 SHA512 
b655a923edc9c4948fd75b56689e07fc9151dfef0b63bc8d3e0a315a72b41559d3d6e69dbf662c0303dd00d9efc5a6238d1bd9081d5e8d1b379486ff8ebb0776
+DIST JetBrains.Lifetimes.2024.3.0.nupkg 442945 BLAKE2B 
168d194a081f692512d2ee14d19807d459dc02339ccd6bfc43e7ed1b86f0d1bfc2b7d06d8b9d9fc6f4413c8cb869de85e2366a38c52cd7d02e03e8791efa1b14
 SHA512 
d187dcc10f6b3467d0d621355de736c458fc6b67126d334f989d6acea8f496cd7ddb1e22e3df5ef70e29670349c657c6694bd801874e85c6bf06a4ca8366f010
+DIST JetBrains.RdFramework.2024.3.0.nupkg 301258 BLAKE2B 
ff2b42a422d06f3244514c08948945de5148b58a6267b0a32f31c71f0b3df03a4edb35572526e68803e878ffdd1604ba5c9936b9c85d4581f3a7f14e66028e27
 SHA512 
ce6f5c8d2cb672ebf5513b863f4936447469105d7a45049757287d8b88d6c88a422ad39c98152d6e4a3478f84ee6d4f68c11c54f08b3144bcc70c08d10f5b715
+DIST JetBrains.Rider.PathLocator.1.0.12.nupkg 24750 BLAKE2B 
97d2eb092cdb2571b72d8e00297931d962e3a5e524fcd659c84de73aca5ab948ee5aa6f04e73e688d53f0cae748898ff52e0361ac932e666ff0c77ebc3745786
 SHA512 
c4806230e6a33b94417ed721a04cc7936a0761922734d0b7b51bf54d942c2208a675aaa78563c3315c102c2b34cd8fde733ed73b2826f593dbb899bf7fa19449
 DIST JetBrains.Rider.PathLocator.1.0.9.nupkg 32084 BLAKE2B 
a5cfb0680b19618d23de6df9d67eee840a776e30ab02b8bdf4a060766d371b11759fcde4b80ef67f99ad3865a27435c62722c5f5bef9cff0543f6a9764b72b25
 SHA512 
d3e4ce00b5c7a0a303f583cd7bd80e93ca05ea823ca68ea49357795385d322c65f257e460e0b924a4e7b7277561997c2f93cc8ddf63346dc31bba6165f9f4818
 DIST Microsoft.Bcl.AsyncInterfaces.5.0.0.nupkg 74074 BLAKE2B 
8e27e56988f0120d2b8e17e05dc6b801bfcb237b700dab5054049473db34d6a2fa4f59eeef7c857c31002488a882910ea7f44be2187b85dd5d1a96edcaddd234
 SHA512 
cea6febc03e3ddd6fc8ad31ebe92fc3f7134f81cc1fef8fb079ec3cd72f8a31120e836c8c39bf16109abd2253919371e2462b9570a2fd6525ad9dfd1f9929a28
 DIST Microsoft.Bcl.AsyncInterfaces.7.0.0.nupkg 95839 BLAKE2B 
057f789af840dcb18f3e2a823f8e16725fdecf93986a469544876d66854e541fcbda2031f8379fc22489d5a8a1fd9f766285b99cae88b7ef8412cb4befb0fabe
 SHA512 
35bf41d65c4269bd0b662d228cd2c4a70e21830b745a5f1040cd43c488494b6a2d0a102d21531fc86ad89776337528eca6f0583e588996bd240ad8b334055edf
@@ -216,6 +222,7 @@ DIST System.Xml.XmlDocument.4.0.1.nupkg 285151 BLAKE2B 
a58a4b04d21e6de8fc5f66294
 DIST coverlet.collector.3.2.0.nupkg 2209480 BLAKE2B 
175bcfcb9d6e5177d44f2d607f2411cbe77d6009d096bbc84372e33d7be972d3e39ec39d7f2669b4b91f4bcf44f6ddd46bc91541c0cc4843426e2dd1073bf5c2
 SHA512 
b63d02a5d3233805b42f0b8cc76f40c8d9f5a0117beb6bdb2ab147f5521bb99919b29d51ff91767ce0bfcab92d25fc8fe794133cadc60da3e009ae18d10fc920
 DIST envdte.17.8.37221.nupkg 158612 BLAKE2B 
01ce699e809c684d957f92822a5a5e0740e7d98f905f9d6b2c24bd6571d469c37265fc874acb1a32206964a0414b97641df04bac22af055ba61a5ba4d4842fdc
 SHA512 
68a892707d5637a4170e14d89d7039349c32b3722723b63ea396681c6ed07a6e8ba626ebce393eb03c7034b94e1a21fdf80dbcb18fe0224d55192779d6ee63fe
 DIST godot-4.4.1-stable.tar.xz 37561040 BLAKE2B 
6c424f1faa28b43a9835ea80a75de273f81877e180c0664b39080a7fa57d4d580a9b9fc6bed50a308f3a15a429c9b93d63cee99a347d6cf1cbe87b870a76f284
 SHA512 
f67882a70dc9e2d2efbbc9cda657f292ba05bb4c8341809c56fe054979032a93b04f9125815865efeaa269cf404010eb74f075a37faebb2a8f28be5abb706480
+DIST godot-4.5-stable.tar.xz 42771064 BLAKE2B 
3a3e816f124bf26a20d6ecb256e49ce8939687c2b21ac527e7e4b6543ef54137ef11df31e1c5bcbbb061d9b426d58d22ef37256965870fd2c9bfe06d6315736f
 SHA512 
046428d8c336747d1853e4a2cdab82e3d6605d25c64dc85efdaa600cbca7436e59e32b401e89b92bcef42059afb2b9156bbce85c34a658cf76957830bd829d50
 DIST 
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.4.3.0.nupkg
 44390 BLAKE2B 
60483871cb9b81514f5b63f1f9ab9cf1c7a6ddb1d33a2a65608b47a2cf8cc3b7eee8e087250a1c49eb2893f36f29410e897387346fa4c3fc5c71e41046f13673
 SHA512 
b2cf809fe50c4b46bd6f2372265cd3059622550123afceb5dbb2410906c07a7f47bae4273584d29253d5e7a63a17c68c7ba0434608bbc8fd4d00e479b2f128ff
 DIST 
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.4.3.0.nupkg
 42827 BLAKE2B 
d2b79a9b83e0bdf569a5c333ba4f86ccb1d5b532d2e1cff3ba7bb597688ac78268a515be4c35a025c66727070100634a4bc946e02ae7b93061be968fab241bed
 SHA512 
fd8e32d7d3e9a465202e391b0ab8b95e212900879bc4d8ac22954fd2d0f98fa579e9d25f88885ac2a4bf1eba755db940f8d131250a3ffec34dbe77431a379cab
 DIST 
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.4.3.0.nupkg
 42833 BLAKE2B 
be9197f3008b3dda19a45e5b5df2ce3604f58a98045a122aa77f082708de67ad953fba761c39ec419e945155ad74d5800638feb581e5d84424ba104f32541640
 SHA512 
4afac5cc1734330a6103880e790d639e825bfb1b34dbd42083762c47db5e5dab6c03efd16049ac03861d7d87746caed09c7534241d51b7341d47ba6af7e8dd31

diff --git a/dev-games/godot-dotnet/files/godot-dotnet-4.5-scons.patch 
b/dev-games/godot-dotnet/files/godot-dotnet-4.5-scons.patch
new file mode 100644
index 0000000000..ac1fd270ed
--- /dev/null
+++ b/dev-games/godot-dotnet/files/godot-dotnet-4.5-scons.patch
@@ -0,0 +1,16 @@
+--- a/SConstruct
++++ b/SConstruct
+@@ -304,2 +304,3 @@
+ opts.Add("CC", "C compiler binary")
++opts.Add("AR", "Archiver")
+ opts.Add("LINK", "Linker binary")
+@@ -745,3 +746,3 @@
+         # `-msse2` is implied when compiling for x86_64.
+-        env.Append(CCFLAGS=["-msse4.2", "-mpopcnt"])
++        pass
+ elif env["arch"] == "x86_32":
+@@ -817,3 +818,3 @@
+         else:
+-            env.AppendUnique(LINKFLAGS=["-s"])
++            pass
+ 

diff --git a/dev-games/godot-dotnet/godot-dotnet-4.5.ebuild 
b/dev-games/godot-dotnet/godot-dotnet-4.5.ebuild
new file mode 100644
index 0000000000..a6f32865a5
--- /dev/null
+++ b/dev-games/godot-dotnet/godot-dotnet-4.5.ebuild
@@ -0,0 +1,523 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+DOTNET_PKG_COMPAT="8.0"
+NUGETS="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
+Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit@1.1.1
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
+runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
+runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple@4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl@4.3.0
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
+"
+
+inherit desktop dotnet-pkg python-any-r1 flag-o-matic scons-utils
+inherit shell-completion toolchain-funcs xdg
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/";
+SRC_URI="
+       
https://github.com/godotengine/godot/releases/download/${PV}-stable/godot-${PV}-stable.tar.xz
+"
+
+SRC_URI+=" ${NUGET_URIS} "
+
+S=${WORKDIR}/godot-${PV}-stable
+LICENSE="
+       MIT
+       Apache-2.0 BSD Boost-1.0 CC0-1.0 IJG Unlicense ZLIB
+       gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )
+"
+SLOT="0"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+       accessibility alsa +dbus debug deprecated double-precision +fontconfig
+       +gui pulseaudio raycast speech test +sdl +theora +tools +udev +upnp
+       +vulkan wayland +webp
+"
+REQUIRED_USE="wayland? ( gui )"
+# TODO: tests still need more figuring out
+RESTRICT="test"
+
+# dlopen: libglvnd
+RDEPEND="
+       !!dev-games/godot
+       app-arch/brotli:=
+       app-arch/zstd:=
+       dev-games/recastnavigation:=
+       dev-libs/icu:=
+       dev-libs/libpcre2:=[pcre32]
+       media-libs/freetype[brotli,harfbuzz]
+       media-libs/harfbuzz:=[icu]
+       media-libs/libogg
+       media-libs/libpng:=
+       media-libs/libvorbis
+       >=net-libs/mbedtls-3.6.2-r101:3=
+       net-libs/wslay
+       sys-libs/zlib:=
+       alsa? ( media-libs/alsa-lib )
+       dbus? ( sys-apps/dbus )
+       fontconfig? ( media-libs/fontconfig )
+       gui? (
+               media-libs/libglvnd
+               x11-libs/libX11
+               x11-libs/libXcursor
+               x11-libs/libXext
+               x11-libs/libXi
+               x11-libs/libXinerama
+               x11-libs/libXrandr
+               x11-libs/libXrender
+               x11-libs/libxkbcommon
+               tools? ( raycast? ( media-libs/embree:4 ) )
+               vulkan? ( media-libs/vulkan-loader[X,wayland?] )
+       )
+       pulseaudio? ( media-libs/libpulse )
+       sdl? ( media-libs/libsdl3 )
+       speech? ( app-accessibility/speech-dispatcher )
+       theora? (
+               media-libs/libtheora:=
+               tools? ( media-libs/libtheora[encode] )
+       )
+       tools? ( app-misc/ca-certificates )
+       udev? ( virtual/udev )
+       upnp? ( net-libs/miniupnpc:= )
+       virtual/dotnet-sdk:8.0
+       wayland? (
+               dev-libs/wayland
+               gui-libs/libdecor
+       )
+       webp? ( media-libs/libwebp:= )
+"
+DEPEND="
+       ${RDEPEND}
+       gui? ( x11-base/xorg-proto )
+       tools? ( test? ( dev-cpp/doctest ) )
+"
+BDEPEND="
+       virtual/pkgconfig
+       wayland? ( dev-util/wayland-scanner )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-4.5-scons.patch
+)
+
+src_unpack() {
+       default
+
+       dotnet-pkg_src_unpack
+}
+
+src_prepare() {
+       default
+
+       # mbedtls normally has mbedtls.pc, but Gentoo's slotted one is 
mbedtls-3.pc
+       sed -E "/pkg-config/s/(mbedtls|mbedcrypto|mbedx509)/&-3/g" \
+               -i platform/linuxbsd/detect.py || die
+
+       sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" 
platform/linuxbsd/detect.py || die
+
+       # use of builtin_ switches can be messy (see below), delete to be sure
+       local unbundle=(
+               brotli doctest embree freetype graphite harfbuzz icu4c libogg
+               libpng libtheora libvorbis libwebp linuxbsd_headers mbedtls
+               miniupnpc pcre2 recastnavigation sdl volk wslay zlib zstd
+               # certs: unused by generated header, but scons panics if not 
found
+       )
+       rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+       ln -s -- "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+}
+
+src_compile() {
+       local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+       filter-lto #921017
+
+       local esconsargs=(
+               AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+               progress=no
+               verbose=yes
+
+               target=$(usex tools editor template_$(usex debug{,} release))
+               dev_build=$(usex debug)
+               tests=$(usex tools $(usex test)) # bakes in --test in final 
binary
+
+               accesskit=$(usex accessibility)
+               alsa=$(usex alsa)
+               dbus=$(usex dbus)
+               deprecated=$(usex deprecated)
+               precision=$(usex double-precision double single)
+               execinfo=no # not packaged, disables crash handler if non-glibc
+               fontconfig=$(usex fontconfig)
+               opengl3=$(usex gui)
+               pulseaudio=$(usex pulseaudio)
+               sdl=$(usex sdl)
+               speechd=$(usex speech)
+               udev=$(usex udev)
+               use_sowrap=no
+               use_volk=no # unnecessary when linking directly to libvulkan
+               vulkan=$(usex gui $(usex vulkan))
+               wayland=$(usex wayland)
+               # TODO: retry to add optional USE=X, wayland support is new
+               # and gui build is not well wired to handle USE="-X wayland" yet
+               x11=$(usex gui)
+
+               system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+               # platform/*/detect.py uses builtin_* switches to check if need
+               # to link with system libraries, but many ignore whether the dep
+               # is actually used, so "enable" deleted builtins on disabled 
deps
+               builtin_accesskit=yes # not packaged
+               builtin_brotli=no
+               builtin_certs=no
+               builtin_clipper2=yes # not packaged
+               builtin_embree=$(usex !gui yes $(usex !tools yes $(usex 
!raycast)))
+               builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+               builtin_freetype=no
+               builtin_glslang=yes #879111 (for now, may revisit if more 
stable)
+               builtin_graphite=no
+               builtin_harfbuzz=no
+               builtin_icu4c=no
+               # TODO: keep an eye on 
https://github.com/godotengine/godot/pull/110540
+               # (reminder: drop IJG and add libjpeg-turbo to unbundle array)
+               builtin_libjpeg_turbo=yes
+               builtin_libogg=no
+               builtin_libpng=no
+               builtin_libtheora=$(usex !theora)
+               builtin_libvorbis=no
+               builtin_libwebp=$(usex !webp)
+               builtin_mbedtls=no
+               builtin_miniupnpc=$(usex !upnp)
+               builtin_msdfgen=yes # not wired for unbundling nor packaged
+               builtin_openxr=yes # not packaged
+               builtin_pcre2=no
+               builtin_recastnavigation=no
+               builtin_rvo2=yes # bundled copy has godot-specific changes
+               builtin_sdl=$(usex !sdl)
+               builtin_wslay=no
+               builtin_xatlas=yes # not wired for unbundling nor packaged
+               builtin_zlib=no
+               builtin_zstd=no
+               # (more is bundled in third_party/ but they lack builtin_* 
switches)
+
+               module_mono_enabled=yes
+
+               # modules with optional dependencies, "possible" to disable 
more but
+               # gets messy and breaks all sorts of features (expected enabled)
+               #
+               # note raycast is only enabled on amd64+arm64 and USE should
+               # be masked for other keywords if added, see raycast/config.py
+               module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+               module_theora_enabled=$(usex theora)
+               module_upnp_enabled=$(usex upnp)
+               module_webp_enabled=$(usex webp)
+
+               # let *FLAGS handle these
+               debug_symbols=no
+               lto=none
+               optimize=custom
+               use_static_cpp=no
+       )
+
+       escons "${esconsargs[@]}"
+}
+
+src_test() {
+       xdg_environment_reset
+
+       bin/godot* --headless --test || die
+}
+
+src_install() {
+       dotnet-pkg_src_prepare # called in this phase due to conflicting
+
+       # godot requires access to input devices?
+       addwrite /dev/input
+       addwrite /dev/bus/usb
+
+       # generate mono glue
+       bin/godot* --headless --generate-mono-glue modules/mono/glue || die 
"Failed to generate mono glue"
+
+       local MSBUILDTERMINALLOGER=off # required for msbuild to succeed?
+
+       # build the C# assemblies; pass flags so assemblies match how engine 
was built
+       python3 modules/mono/build_scripts/build_assemblies.py \
+               --godot-output-dir "${S}/bin" \
+               --precision="$(usex double-precision double single)" \
+               $(usex debug --dev-debug "") \
+               $(usex deprecated "" --no-deprecated) \
+               --push-nupkgs-local="${T}/.nuget/packages" \
+               || die "Failed to build mono assemblies"
+
+       # install...
+       insinto /opt/godot
+       doins -r bin/.
+
+       fperms +x "/opt/godot/$(basename bin/godot*)"
+
+       dosym "../../opt/godot/$(basename bin/godot*)" /usr/bin/godot
+
+       doman misc/dist/linux/godot.6
+       dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+       if use gui; then
+               newicon icon.svg godot.svg
+               domenu misc/dist/linux/org.godotengine.Godot.desktop
+
+               insinto /usr/share/metainfo
+               doins misc/dist/linux/org.godotengine.Godot.appdata.xml
+
+               insinto /usr/share/mime/application
+               doins misc/dist/linux/org.godotengine.Godot.xml
+       fi
+
+       newbashcomp misc/dist/shell/godot.bash-completion godot
+       newfishcomp misc/dist/shell/godot.fish godot.fish
+       newzshcomp misc/dist/shell/_godot.zsh-completion _godot
+}

Reply via email to