Skip to content

Commit 2398d61

Browse files
authored
Merge pull request #90 from godotengine/linux-buildroot-update-arm
Linux: Update to new SDK with GCC 13, add ARM64 and ARM32
2 parents 09b9dcf + 96b8f89 commit 2398d61

File tree

3 files changed

+88
-15
lines changed

3 files changed

+88
-15
lines changed

build-linux/build.sh

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ mkdir godot
1414
cd godot
1515
tar xf /root/godot.tar.gz --strip-components=1
1616

17-
# pkg-config wrongly points to lib instead of lib64 for arch-dependent header.
18-
sed -i ${GODOT_SDK_LINUX_X86_64}/x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
19-
2017
# Classical
2118

2219
if [ "${CLASSICAL}" == "1" ]; then
@@ -35,7 +32,7 @@ if [ "${CLASSICAL}" == "1" ]; then
3532
cp -rvp bin/* /root/out/x86_64/templates
3633
rm -rf bin
3734

38-
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
35+
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
3936

4037
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS target=editor
4138
mkdir -p /root/out/x86_32/tools
@@ -47,6 +44,32 @@ if [ "${CLASSICAL}" == "1" ]; then
4744
mkdir -p /root/out/x86_32/templates
4845
cp -rvp bin/* /root/out/x86_32/templates
4946
rm -rf bin
47+
48+
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
49+
50+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=editor
51+
mkdir -p /root/out/arm64/tools
52+
cp -rvp bin/* /root/out/arm64/tools
53+
rm -rf bin
54+
55+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=template_debug
56+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS target=template_release
57+
mkdir -p /root/out/arm64/templates
58+
cp -rvp bin/* /root/out/arm64/templates
59+
rm -rf bin
60+
61+
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
62+
63+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=editor
64+
mkdir -p /root/out/arm32/tools
65+
cp -rvp bin/* /root/out/arm32/tools
66+
rm -rf bin
67+
68+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=template_debug
69+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS target=template_release
70+
mkdir -p /root/out/arm32/templates
71+
cp -rvp bin/* /root/out/arm32/templates
72+
rm -rf bin
5073
fi
5174

5275
# Mono
@@ -71,7 +94,7 @@ if [ "${MONO}" == "1" ]; then
7194
cp -rvp bin/* /root/out/x86_64/templates-mono
7295
rm -rf bin
7396

74-
export PATH="${GODOT_SDK_LINUX_X86}/bin:${BASE_PATH}"
97+
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
7598

7699
$SCONS platform=linuxbsd arch=x86_32 $OPTIONS $OPTIONS_MONO target=editor
77100
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
@@ -84,6 +107,34 @@ if [ "${MONO}" == "1" ]; then
84107
mkdir -p /root/out/x86_32/templates-mono
85108
cp -rvp bin/* /root/out/x86_32/templates-mono
86109
rm -rf bin
110+
111+
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
112+
113+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=editor
114+
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
115+
mkdir -p /root/out/arm64/tools-mono
116+
cp -rvp bin/* /root/out/arm64/tools-mono
117+
rm -rf bin
118+
119+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=template_debug
120+
$SCONS platform=linuxbsd arch=arm64 $OPTIONS $OPTIONS_MONO target=template_release
121+
mkdir -p /root/out/arm64/templates-mono
122+
cp -rvp bin/* /root/out/arm64/templates-mono
123+
rm -rf bin
124+
125+
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
126+
127+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=editor
128+
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=linuxbsd
129+
mkdir -p /root/out/arm32/tools-mono
130+
cp -rvp bin/* /root/out/arm32/tools-mono
131+
rm -rf bin
132+
133+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=template_debug
134+
$SCONS platform=linuxbsd arch=arm32 $OPTIONS $OPTIONS_MONO target=template_release
135+
mkdir -p /root/out/arm32/templates-mono
136+
cp -rvp bin/* /root/out/arm32/templates-mono
137+
rm -rf bin
87138
fi
88139

89140
echo "Linux build successful"

build-mono-glue/build.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,12 @@ mkdir godot
1515
cd godot
1616
tar xf ../godot.tar.gz --strip-components=1
1717

18-
# pkg-config wrongly points to lib instead of lib64 for arch-dependent header.
19-
sed -i ${GODOT_SDK_LINUX_X86_64}/x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g"
20-
2118
# Mono
2219

2320
if [ "${MONO}" == "1" ]; then
2421
echo "Building and generating Mono glue..."
2522

2623
dotnet --info
27-
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig/
2824

2925
${SCONS} platform=linuxbsd ${OPTIONS} target=editor module_mono_enabled=yes
3026

build-release.sh

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,13 +240,21 @@ if [ "${build_classical}" == "1" ]; then
240240
# Editor
241241
binname="${godot_basename}_linux.x86_64"
242242
cp out/linux/x86_64/tools/godot.linuxbsd.editor.x86_64 ${binname}
243-
strip ${binname}
244243
zip -q -9 "${reldir}/${binname}.zip" ${binname}
245244
rm ${binname}
246245

247246
binname="${godot_basename}_linux.x86_32"
248247
cp out/linux/x86_32/tools/godot.linuxbsd.editor.x86_32 ${binname}
249-
strip ${binname}
248+
zip -q -9 "${reldir}/${binname}.zip" ${binname}
249+
rm ${binname}
250+
251+
binname="${godot_basename}_linux.arm64"
252+
cp out/linux/arm64/tools/godot.linuxbsd.editor.arm64 ${binname}
253+
zip -q -9 "${reldir}/${binname}.zip" ${binname}
254+
rm ${binname}
255+
256+
binname="${godot_basename}_linux.arm32"
257+
cp out/linux/arm32/tools/godot.linuxbsd.editor.arm32 ${binname}
250258
zip -q -9 "${reldir}/${binname}.zip" ${binname}
251259
rm ${binname}
252260

@@ -255,7 +263,10 @@ if [ "${build_classical}" == "1" ]; then
255263
cp out/linux/x86_64/templates/godot.linuxbsd.template_debug.x86_64 ${templatesdir}/linux_debug.x86_64
256264
cp out/linux/x86_32/templates/godot.linuxbsd.template_release.x86_32 ${templatesdir}/linux_release.x86_32
257265
cp out/linux/x86_32/templates/godot.linuxbsd.template_debug.x86_32 ${templatesdir}/linux_debug.x86_32
258-
strip ${templatesdir}/linux*
266+
cp out/linux/arm64/templates/godot.linuxbsd.template_release.arm64 ${templatesdir}/linux_release.arm64
267+
cp out/linux/arm64/templates/godot.linuxbsd.template_debug.arm64 ${templatesdir}/linux_debug.arm64
268+
cp out/linux/arm32/templates/godot.linuxbsd.template_release.arm32 ${templatesdir}/linux_release.arm32
269+
cp out/linux/arm32/templates/godot.linuxbsd.template_debug.arm32 ${templatesdir}/linux_debug.arm32
259270

260271
## Windows (Classical) ##
261272

@@ -390,25 +401,40 @@ if [ "${build_mono}" == "1" ]; then
390401
binbasename="${godot_basename}_mono_linux"
391402
mkdir -p ${binbasename}_x86_64
392403
cp out/linux/x86_64/tools-mono/godot.linuxbsd.editor.x86_64.mono ${binbasename}_x86_64/${binbasename}.x86_64
393-
strip ${binbasename}_x86_64/${binbasename}.x86_64
394404
cp -rp out/linux/x86_64/tools-mono/GodotSharp ${binbasename}_x86_64/
395405
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_64.zip" ${binbasename}_x86_64
396406
rm -rf ${binbasename}_x86_64
397407

398408
binbasename="${godot_basename}_mono_linux"
399409
mkdir -p ${binbasename}_x86_32
400410
cp out/linux/x86_32/tools-mono/godot.linuxbsd.editor.x86_32.mono ${binbasename}_x86_32/${binbasename}.x86_32
401-
strip ${binbasename}_x86_32/${binbasename}.x86_32
402411
cp -rp out/linux/x86_32/tools-mono/GodotSharp/ ${binbasename}_x86_32/
403412
zip -r -q -9 "${reldir_mono}/${binbasename}_x86_32.zip" ${binbasename}_x86_32
404413
rm -rf ${binbasename}_x86_32
405414

415+
binbasename="${godot_basename}_mono_linux"
416+
mkdir -p ${binbasename}_arm64
417+
cp out/linux/arm64/tools-mono/godot.linuxbsd.editor.arm64.mono ${binbasename}_arm64/${binbasename}.arm64
418+
cp -rp out/linux/arm64/tools-mono/GodotSharp/ ${binbasename}_arm64/
419+
zip -r -q -9 "${reldir_mono}/${binbasename}_arm64.zip" ${binbasename}_arm64
420+
rm -rf ${binbasename}_arm64
421+
422+
binbasename="${godot_basename}_mono_linux"
423+
mkdir -p ${binbasename}_arm32
424+
cp out/linux/arm32/tools-mono/godot.linuxbsd.editor.arm32.mono ${binbasename}_arm32/${binbasename}.arm32
425+
cp -rp out/linux/arm32/tools-mono/GodotSharp/ ${binbasename}_arm32/
426+
zip -r -q -9 "${reldir_mono}/${binbasename}_arm32.zip" ${binbasename}_arm32
427+
rm -rf ${binbasename}_arm32
428+
406429
# Templates
407430
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_debug.x86_64.mono ${templatesdir_mono}/linux_debug.x86_64
408431
cp out/linux/x86_64/templates-mono/godot.linuxbsd.template_release.x86_64.mono ${templatesdir_mono}/linux_release.x86_64
409432
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_debug.x86_32.mono ${templatesdir_mono}/linux_debug.x86_32
410433
cp out/linux/x86_32/templates-mono/godot.linuxbsd.template_release.x86_32.mono ${templatesdir_mono}/linux_release.x86_32
411-
strip ${templatesdir_mono}/linux*
434+
cp out/linux/arm64/templates-mono/godot.linuxbsd.template_debug.arm64.mono ${templatesdir_mono}/linux_debug.arm64
435+
cp out/linux/arm64/templates-mono/godot.linuxbsd.template_release.arm64.mono ${templatesdir_mono}/linux_release.arm64
436+
cp out/linux/arm32/templates-mono/godot.linuxbsd.template_debug.arm32.mono ${templatesdir_mono}/linux_debug.arm32
437+
cp out/linux/arm32/templates-mono/godot.linuxbsd.template_release.arm32.mono ${templatesdir_mono}/linux_release.arm32
412438

413439
## Windows (Mono) ##
414440

0 commit comments

Comments
 (0)