Add a custom godot build template with reduced features for smaller exports - implements #15

This commit is contained in:
ChaoticByte 2024-12-22 21:55:33 +01:00
parent 288ddcbc5b
commit 862ef075ff
No known key found for this signature in database
4 changed files with 53 additions and 1 deletions

2
.gitignore vendored
View file

@ -13,6 +13,8 @@ data_*/
mono_crash.*.json
# Builds
*.x86_64
godot.*.template_release.*
dist/*
!dist/.gitkeep

View file

@ -0,0 +1,21 @@
MAINTAINER ChaoticByte
# Using Ubuntu 20.04
FROM docker.io/ubuntu:focal AS os-base
# https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_linuxbsd.html
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu1-mesa-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev libwayland-dev
RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq git
FROM os-base AS clone-src
RUN git clone https://github.com/godotengine/godot.git -b 4.3-stable /godot-src
FROM clone-src
WORKDIR /godot-src
ENTRYPOINT scons platform=linuxbsd target=template_release lto=full optimize=size disable_3d=yes module_text_server_adv_enabled=no module_text_server_fb_enabled=yes module_basis_universal_enabled=no module_csg_enabled=no module_dds_enabled=no module_enet_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jsonrpc_enabled=no module_ktx_enabled=no module_mbedtls_enabled=no module_meshoptimizer_enabled=no module_minimp3_enabled=no module_mobile_vr_enabled=no module_msdfgen_enabled=no module_multiplayer_enabled=no module_navigation_enabled=no module_ogg_enabled=no module_openxr_enabled=no module_raycast_enabled=no module_squish_enabled=no module_svg_enabled=no module_tga_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_vhacd_enabled=no module_vorbis_enabled=no module_webrtc_enabled=no module_websocket_enabled=no module_webxr_enabled=no module_zip_enabled=no arch=x86_64 && strip bin/godot.linuxbsd.template_release.x86_64

29
build-template/build.sh Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -e
function log {
echo -e "\033[1;36m* $@\033[0m"
}
log
log "Fragmented - Godot Build Template Builder"
log
cd $(dirname $0)
log Switched to $(pwd)
tmpsuffix=$(date +%s%N)
image_name=fragmented-godot-template-builder
container_name=${image_name}-${tmpsuffix}
output_file=godot.linuxbsd.template_release.x86_64
log Building image ${image_name} ...
buildah build -t ${image_name}
log Building godot build template with container ${container_name} ...
podman run --name ${container_name} localhost/${image_name}:latest
log Copying ${output_file} from container to $(realpath ./${output_file})
podman cp ${container_name}:/godot-src/bin/${output_file} ./${output_file}
log Removing container ${container_name}
podman container rm ${container_name}
log Done :D

View file

@ -19,7 +19,7 @@ script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
custom_template/release="./build-template/godot.linuxbsd.template_release.x86_64"
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/s3tc_bptc=true