# Maintainer: Alexander F. Rødseth # Contributor: loqs # Contributor: Jorge Araya Navarro # Contributor: Cristian Porras # Contributor: Matthew Bentley # Contributor: Marvin Dalheimer # Contributor: HurricanePootis pkgbase=godot pkgname=(godot godot-mono) pkgver=4.0.2 pkgrel=1 pkgdesc='Advanced cross-platform 2D and 3D game engine' url='https://godotengine.org/' license=(MIT) arch=(x86_64) makedepends=(alsa-lib mono-msbuild nuget pulseaudio python scons xorg-server-xvfb yasm) depends=(embree freetype2 graphite harfbuzz harfbuzz-icu libglvnd libspeechd libsquish libtheora libvorbis libwebp libwslay libxcursor libxi libxinerama libxrandr mbedtls miniupnpc mono mono-msbuild pcre2) optdepends=(pipewire-alsa pipewire-pulse) source=("$pkgbase-$pkgver.tar.gz::https://github.com/godotengine/godot/archive/$pkgver-stable.tar.gz") b2sums=('56069525ee31d6750c6c0107a58e8cb90ad0d06d5a521c127dbe5ba102577a1a8a906ac2c2eeb250156ad3ffbd5c3c3d2c3a590cfd2240ddc2b004b8e8dff208') sha256sums=('d978282597c5e3a398ad3ade8b5a68d351178c82b197fa6a64045f4abc37e5a6') prepare() { # Update the MIME info, ref FS#77810 sed -i 's,xmlns="https://specifications.freedesktop.org/shared-mime-info-spec",xmlns="http://www.freedesktop.org/standards/shared-mime-info",g' \ $pkgbase-$pkgver-stable/misc/dist/linux/org.godotengine.Godot.xml # Copy the files for godot-mono cp -r $pkgbase-$pkgver-stable $pkgbase-$pkgver-mono } build() { # Not unbundled (yet): # enet (contains no upstreamed IPv6 support) # AUR: libwebm, rvo2 # recastnavigation, xatlas export BUILD_NAME=arch_linux # # Build the regular godot package # cd $pkgbase-$pkgver-stable scons -j$(nproc --all) \ CFLAGS="$CFLAGS -fPIC -Wl,-z,relro,-z,now -w" \ CXXFLAGS="$CXXFLAGS -fPIC -Wl,-z,relro,-z,now -w" \ LINKFLAGS="$LDFLAGS" \ arch=$CARCH \ builtin_embree=no \ builtin_enet=yes \ builtin_freetype=no \ builtin_msdfgen=yes \ builtin_glslang=yes \ builtin_graphite=no \ builtin_harfbuzz=no \ builtin_icu4c=yes \ builtin_libogg=no \ builtin_libpng=no \ builtin_libtheora=no \ builtin_libvorbis=no \ builtin_libwebp=no \ builtin_wslay=yes \ builtin_mbedtls=no \ builtin_miniupnpc=no \ builtin_pcre2=no \ builtin_pcre2_with_jit=no \ builtin_recastnavigation=yes \ builtin_rvo2=yes \ builtin_squish=no \ builtin_xatlas=yes \ builtin_zlib=no \ builtin_zstd=no \ colored=yes \ platform=linuxbsd \ production=yes \ pulseaudio=yes \ system_certs_path=/etc/ssl/certs/ca-certificates.crt \ target=editor \ use_llvm=no \ werror=no # # Build godot-mono # cd $srcdir/$pkgbase-$pkgver-mono scons -j$(nproc --all) \ CFLAGS="$CFLAGS -fPIC -Wl,-z,relro,-z,now -w" \ CXXFLAGS="$CXXFLAGS -fPIC -Wl,-z,relro,-z,now -w" \ LINKFLAGS="$LDFLAGS" \ arch=$CARCH \ builtin_embree=no \ builtin_enet=yes \ builtin_freetype=no \ builtin_msdfgen=yes \ builtin_glslang=yes \ builtin_graphite=no \ builtin_harfbuzz=no \ builtin_icu4c=yes \ builtin_libogg=no \ builtin_libpng=no \ builtin_libtheora=no \ builtin_libvorbis=no \ builtin_libwebp=no \ builtin_wslay=yes \ builtin_mbedtls=no \ builtin_miniupnpc=no \ builtin_pcre2=no \ builtin_pcre2_with_jit=no \ builtin_recastnavigation=yes \ builtin_rvo2=yes \ builtin_squish=no \ builtin_xatlas=yes \ builtin_zlib=no \ builtin_zstd=no \ colored=yes \ module_mono_enabled=yes \ mono_glue=no \ platform=linuxbsd \ production=yes \ pulseaudio=yes \ system_certs_path=/etc/ssl/certs/ca-certificates.crt \ target=editor \ tools=yes \ use_llvm=no \ werror=no xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" bin/godot.linuxbsd.editor.x86_64.mono --generate-mono-glue modules/mono/glue modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd } package_godot() { cd $pkgbase-$pkgver-stable install -Dm644 misc/dist/linux/org.godotengine.Godot.desktop \ "$pkgdir/usr/share/applications/godot.desktop" install -Dm644 icon.svg "$pkgdir/usr/share/pixmaps/godot.svg" install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/godot/LICENSE" install -Dm644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/godot.6" install -Dm644 misc/dist/linux/org.godotengine.Godot.xml \ "$pkgdir/usr/share/mime/packages/org.godotengine.Godot.xml" install -Dm755 bin/godot.linuxbsd.editor.$CARCH "$pkgdir/usr/bin/godot" } package_godot-mono() { pkgdesc='Advanced cross-platform 2D and 3D game engine with Mono/C# support' depends+=('dotnet-sdk') # TODO: optdepends+=('dotnet-core') cd $pkgbase-$pkgver-mono install -Dm644 misc/dist/linux/org.godotengine.Godot.desktop \ "$pkgdir/usr/share/applications/godot.desktop" install -Dm644 icon.svg "$pkgdir/usr/share/pixmaps/godot.svg" install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/godot/LICENSE" install -Dm644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/godot.6" install -Dm644 misc/dist/linux/org.godotengine.Godot.xml \ "$pkgdir/usr/share/mime/packages/org.godotengine.Godot.xml" mkdir -p "$pkgdir/opt/godot" && cp -r bin/GodotSharp "$pkgdir/opt/godot/GodotSharp" install -Dm755 bin/godot.linuxbsd.editor.$CARCH.mono \ "$pkgdir/opt/godot/godot.linuxbsd.editor.$CARCH.mono" mkdir -p "$pkgdir/usr/bin" && cat > "$pkgdir/usr/bin/godot" <<-EOF #!/bin/sh /opt/godot/godot.linuxbsd.editor.$CARCH.mono "$@" EOF chmod +x "$pkgdir/usr/bin/godot" }