summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0e54d51cbd022be4331fdfd3093479e6cdf25b90 (plain)
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
# Maintainer: Marvin Dalheimer <me@marvin-dalheimer.de>
# Maintainer: HurricanePootis <hurricanepootis@protonmail.com>
_pkgname=godot-mono
pkgname=godot-mono
pkgver=4.3
pkgrel=3
pkgdesc="An advanced, feature packed, multi-platform 2D and 3D game engine"
arch=('x86_64')
url="https://godotengine.org/"
license=('MIT')
depends=(brotli ca-certificates embree freetype2 graphite harfbuzz harfbuzz-icu libglvnd
   libspeechd libsquish libtheora libvorbis libwebp libwslay libxcursor libxi libxinerama 
   libxrandr openxr miniupnpc pcre2 dotnet-sdk hicolor-icon-theme
   libogg libpng zlib glibc zstd)
makedepends=(alsa-lib gcc pulse-native-provider scons yasm nuget python git rsync python)
optdepends=('pipewire-alsa: for audio support'
            'pipewire-pulse: for audio support')
source=("https://github.com/godotengine/godot/releases/download/${pkgver}-stable/godot-${pkgver}-stable.tar.xz")
sha512sums=('6e1eaba5c3447527ce60d623f7f81cbd90633a5a1ad4c6dd469055a43c8fb9b4807fcd3bae25331294596c2418eb6c0c9db0871c3e1405ddcc7d84e29c39a45b')

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' \
    "${srcdir}/godot-${pkgver}-stable"/misc/dist/linux/org.godotengine.Godot.xml
  # Patch miniupnpc
  sed -i 's/addr, 16/addr, 16, nullptr, 0/g' "$srcdir"/godot-$pkgver-stable/modules/upnp/upnp.cpp
}



build() {
    cd "${srcdir}/godot-${pkgver}-stable"

    #Build temporary binaries to generate needed files for mono support
    # Miniupnpc disabled since 4.3 due to compiler error
    # mbedtls disabled due to `godot` issue #3
    export BUILD_NAME=arch_linux
  scons -j$(nproc) \
    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_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=yes \
    builtin_miniupnpc=no \
    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_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 \
    module_mono_enabled=yes \
    mono_glue=no

    bin/godot.linuxbsd.editor.x86_64.mono --headless --generate-mono-glue modules/mono/glue

    # Build normal binaries
    modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
}

package() {
    install -d \
        "${pkgdir}/usr/lib/${_pkgname}/" \
        "${pkgdir}/usr/bin/" \
        "${pkgdir}/usr/share/applications/"

    rsync -a \
        "${srcdir}/godot-${pkgver}-stable/bin" "${pkgdir}/usr/lib/${_pkgname}"

    ln -s "/usr/lib/${_pkgname}/bin/godot.linuxbsd.editor.x86_64.mono" "${pkgdir}/usr/bin/godot-mono"
    
    install -Dm644 \
        "${srcdir}/godot-${pkgver}-stable/icon.svg" \
        "${pkgdir}/usr/share/icons/hicolor/scalable/apps/${pkgname}.svg"

    install -Dm644 \
	"${srcdir}/godot-${pkgver}-stable/LICENSE.txt" \
	"${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

    install -Dm644 \
	"${srcdir}/godot-${pkgver}-stable/misc/dist/linux/godot.6" \
	"${pkgdir}/usr/share/man/man6/${pkgname}.6"

    install -Dm644 \
	"${srcdir}/godot-${pkgver}-stable/misc/dist/linux/org.godotengine.Godot.desktop"\
	"${pkgdir}/usr/share/applications/org.godotengine.Godot-mono.desktop"

    sed -i "s/Exec=godot/Exec=godot-mono/g" "$pkgdir/usr/share/applications/org.godotengine.Godot-mono.desktop"
    sed -i "s/Icon=godot/Icon=godot-mono/g" "$pkgdir/usr/share/applications/org.godotengine.Godot-mono.desktop"
    sed -i "s/Name=Godot Engine/Name=Godot Engine Mono/g" "$pkgdir/usr/share/applications/org.godotengine.Godot-mono.desktop"
}