1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# Maintainer: Alexander F. Rødseth <xyproto@archlinux.org>
# Contributor: loqs
# Contributor: Jorge Araya Navarro <jorgejavieran@yahoo.com.mx>
# Contributor: Cristian Porras <porrascristian@gmail.com>
# Contributor: Matthew Bentley <matthew@mtbentley.us>
# Contributor: HurricanePootis <hurricanepootis@protonmail.com>
# Contributor: Toolybird <toolybird at tuta dot io>
pkgbase=godot-double
pkgname=(godot-double godot-double-mono)
pkgver=4.7
pkgrel=2
pkgdesc='Advanced cross-platform 2D and 3D game engine (double-precision build)'
url='https://godotengine.org/'
license=(MIT)
arch=(x86_64)
options=(!lto)
makedepends=(alsa-lib dotnet-sdk git nuget pulse-native-provider scons setconf yasm)
depends=(brotli ca-certificates embree freetype2 graphite libglvnd libspeechd libsquish libtheora libvorbis
libwebp libwslay libxcursor libxi libxinerama libxrandr miniupnpc openxr pcre2)
optdepends=('pipewire-alsa: for audio support'
'pulse-native-provider: for audio support')
source=("godot::git+https://github.com/godotengine/godot#tag=$pkgver-stable")
b2sums=('d778a58d2d0b357bac463e7e4bbf0fd916a6688dd2516893dd7342e6a2bc368df356b4ab0087e786c173222246f6a5b33a540001aac0246d09b3f4be17f5d0d0')
prepare() {
cd godot
# Patch for miniupnpc
sed -i 's/addr, 16/addr, 16, nullptr, 0/g' modules/upnp/upnp.cpp
cd misc/dist/linux
cp -f org.godotengine.Godot.desktop org.godotengine.Godot-Double.desktop
setconf org.godotengine.Godot-Double.desktop Exec godot-double
setconf org.godotengine.Godot-Double.desktop Icon godot-double.svg
setconf org.godotengine.Godot-Double.desktop Name 'Godot Engine (Double Precision)'
sed -i 's,xmlns="https://specifications.freedesktop.org/shared-mime-info-spec",xmlns="http://www.freedesktop.org/standards/shared-mime-info",g' \
org.godotengine.Godot.xml
cp -f org.godotengine.Godot.xml org.godotengine.Godot-Double.xml
cp -f org.godotengine.Godot.desktop org.godotengine.Godot-Double-mono.desktop
setconf org.godotengine.Godot-Double-mono.desktop Exec godot-double-mono
setconf org.godotengine.Godot-Double-mono.desktop Icon godot-double-mono.svg
setconf org.godotengine.Godot-Double-mono.desktop Name 'Godot Engine Mono (Double Precision)'
cp -f org.godotengine.Godot.xml org.godotengine.Godot-Double-mono.xml
}
case $CARCH in
x86_64*) _CARCH=x86_64;;
aarch64) _CARCH=arm64;;
esac
build() {
cd godot
export BUILD_NAME=arch_linux
# Not unbundled (yet):
# mbedtls
# enet (contains no upstreamed IPv6 support)
# AUR: libwebm, rvo2
# recastnavigation, xatlas
_args=(
-j"${GDOPS_SCONS_JOBS:-$(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_brotli=no
builtin_certs=no
builtin_clipper2=yes
builtin_embree=no
builtin_enet=yes
builtin_freetype=no
builtin_glslang=yes
builtin_graphite=no
builtin_harfbuzz=yes
builtin_icu4c=yes
builtin_libogg=no
builtin_libpng=no
builtin_libtheora=no
builtin_libvorbis=no
builtin_libwebp=no
builtin_mbedtls=yes
builtin_miniupnpc=no
builtin_msdfgen=yes
builtin_openxr=no
builtin_pcre2=no
builtin_pcre2_with_jit=no
builtin_recastnavigation=yes
builtin_rvo2_2d=yes
builtin_rvo2_3d=yes
builtin_squish=no
builtin_wslay=yes
builtin_xatlas=yes
builtin_zlib=no
builtin_zstd=no
colored=yes
debug_symbols=yes
disable_exceptions=false
platform=linuxbsd
production=yes
pulseaudio=yes
precision=double
system_certs_path=/etc/ssl/certs/ca-certificates.crt
target=editor
use_llvm=no
werror=no
)
# Regular build
scons "${_args[@]}"
# Mono build
_args+=(module_mono_enabled=yes mono_glue=no)
scons "${_args[@]}"
bin/godot.linuxbsd.editor.double.$_CARCH.mono --headless --generate-mono-glue modules/mono/glue
modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd --precision=double
}
package_godot-double() {
cd godot
install -Dm755 bin/godot.linuxbsd.editor.double.$_CARCH "$pkgdir/usr/bin/godot-double"
install -Dm644 misc/logo/icon.svg "$pkgdir/usr/share/pixmaps/$pkgname.svg"
install -Dm644 misc/dist/linux/org.godotengine.Godot-Double.desktop "$pkgdir/usr/share/applications/org.godotengine.Godot-Double.desktop"
install -Dm644 misc/dist/linux/org.godotengine.Godot-Double.xml "$pkgdir/usr/share/mime/packages/org.godotengine.Godot-Double.xml"
install -Dm644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/$pkgname.6"
install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
package_godot-double-mono() {
depends+=(dotnet-sdk-8.0)
cd godot
install -Dm755 bin/godot.linuxbsd.editor.double.$_CARCH.mono "$pkgdir/usr/lib/$pkgname/godot.linuxbsd.editor.double.$_CARCH.mono"
cp -a bin/GodotSharp "$pkgdir/usr/lib/$pkgname/"
install -d "$pkgdir/usr/bin"
ln -s /usr/lib/$pkgname/godot.linuxbsd.editor.double.$_CARCH.mono "$pkgdir/usr/bin/$pkgname"
install -Dm644 misc/logo/icon.svg "$pkgdir/usr/share/pixmaps/$pkgname.svg"
install -Dm644 misc/dist/linux/org.godotengine.Godot-Double-mono.desktop "$pkgdir/usr/share/applications/org.godotengine.Godot-Double-mono.desktop"
install -Dm644 misc/dist/linux/org.godotengine.Godot-Double-mono.xml "$pkgdir/usr/share/mime/packages/org.godotengine.Godot-Double-mono.xml"
install -Dm644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/$pkgname.6"
install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
|