Build containers initial cleanup.

This commit is contained in:
Relintai 2024-09-12 18:54:57 +02:00
parent 1e2ba5d9df
commit 76e984982b
9 changed files with 48 additions and 287 deletions

View File

@ -1,12 +1,10 @@
ARG img_version
FROM pandemonium-fedora:${img_version}
FROM gdnative-python-fedora:${img_version}
# Todo host the buildroot files somewhere
ENV GODOT_SDK_LINUX_X86_64=/root/x86_64-godot-linux-gnu_sdk-buildroot
ENV GODOT_SDK_LINUX_X86_32=/root/i686-godot-linux-gnu_sdk-buildroot
ENV GODOT_SDK_LINUX_ARM64=/root/aarch64-godot-linux-gnu_sdk-buildroot
ENV GODOT_SDK_LINUX_ARM32=/root/arm-godot-linux-gnueabihf_sdk-buildroot
ENV BASE_PATH=${PATH}
@ -21,19 +19,7 @@ RUN dnf install -y wayland-devel && \
tar xf i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
rm -f i686-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
cd i686-godot-linux-gnu_sdk-buildroot && \
./relocate-sdk.sh && \
cd /root && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
tar xf aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
rm -f aarch64-godot-linux-gnu_sdk-buildroot.tar.bz2 && \
cd aarch64-godot-linux-gnu_sdk-buildroot && \
./relocate-sdk.sh && \
cd /root && \
curl -LO https://downloads.tuxfamily.org/godotengine/toolchains/linux/2024-01-17/arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
tar xf arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
rm -f arm-godot-linux-gnueabihf_sdk-buildroot.tar.bz2 && \
cd arm-godot-linux-gnueabihf_sdk-buildroot && \
./relocate-sdk.sh
./relocate-sdk.sh
CMD /bin/bash

View File

@ -1,5 +1,5 @@
ARG img_version
FROM pandemonium-fedora:${img_version}
FROM gdnative-python-fedora:${img_version}
ENV OSX_SDK=14.2

View File

@ -1,5 +1,5 @@
ARG img_version
FROM pandemonium-fedora:${img_version}
FROM gdnative-python-fedora:${img_version}
RUN dnf -y install --setopt=install_weak_deps=False \
mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static mingw64-gcc mingw64-gcc-c++ mingw64-winpthreads-static

View File

@ -0,0 +1,25 @@
ARG img_version
FROM gdnative-python-fedora:${img_version}
RUN dnf -y install --setopt=install_weak_deps=False \
clang xar xar-devel xz-devel cpio && \
git clone --progress https://github.com/nrosenstein-stuff/pbzx && \
cd pbzx && \
git checkout bf536e167f2e514866f91d7baa0df1dff5a13711 && \
clang -O3 -llzma -lxar -I /usr/local/include pbzx.c -o pbzx
ENV XCODE_SDKV=
ENV OSX_SDKV=
CMD mkdir -p /root/xcode && \
cd /root/xcode && \
xar -xf /root/files/Xcode_${XCODE_SDKV}.xip && \
/root/pbzx/pbzx -n Content | cpio -i && \
export OSX_SDK=MacOSX${OSX_SDKV}.sdk && \
cp -r Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /tmp/${OSX_SDK} && \
cd /tmp && \
tar -cJf /root/files/${OSX_SDK}.tar.xz ${OSX_SDK} && \
rm -rf ${OSX_SDK}

View File

@ -6,7 +6,7 @@ basedir=$(pwd)/
cd ../..
project_root=$(pwd)/
img_version=pe
img_version=pgp
mkdir -p logs
@ -20,60 +20,23 @@ fi
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-windows:${img_version} \
-w /root/project gdnative-python-windows:${img_version} \
bash /root/engine_build_scripts/windows.sh "$@" 2>&1 | tee logs/windows.log
# Linux Build
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-linux:${img_version} \
-w /root/project gdnative-python-linux:${img_version} \
bash /root/engine_build_scripts/linux.sh "$@" 2>&1 | tee logs/linux.log
# Javascript Build
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-javascript:${img_version} \
bash /root/engine_build_scripts/javascript.sh "$@" 2>&1 | tee logs/javascript.log
# Android Build
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-android:${img_version} \
bash /root/engine_build_scripts/android.sh "$@" 2>&1 | tee logs/android.log
# OSX Build
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-osx:${img_version} \
-w /root/project gdnative-python-osx:${img_version} \
bash /root/engine_build_scripts/osx.sh "$@" 2>&1 | tee logs/osx.log
# iOS Build
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-ios:${img_version} \
bash /root/engine_build_scripts/ios.sh "$@" 2>&1 | tee logs/ios.log
# FRT Build arm64
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-frt-arm64:${img_version} \
bash /root/engine_build_scripts/frt_arm64.sh "$@" 2>&1 | tee logs/frt_arm64.log
# FRT Build arm32
docker run ${custom_envvars} \
-v ${basedir}/engine_build_scripts:/root/engine_build_scripts \
-v ${project_root}:/root/project \
-w /root/project pandemonium-frt-arm32:${img_version} \
bash /root/engine_build_scripts/frt_arm32.sh "$@" 2>&1 | tee logs/frt_arm32.log
# Check files
cd ./bin/
@ -81,116 +44,12 @@ cd ./bin/
files=(
# Windows
"pandemonium.windows.opt.64.exe"
"pandemonium.windows.opt.debug.64.exe"
"pandemonium.windows.opt.32.exe"
"pandemonium.windows.opt.debug.32.exe"
"pandemonium.windows.opt.tools.64.exe"
"pandemonium.windows.opt.tools.32.exe"
# Linux
"pandemonium.x11.opt.32"
"pandemonium.x11.opt.64"
"pandemonium.x11.opt.arm"
"pandemonium.x11.opt.arm64"
"pandemonium.x11.opt.debug.32"
"pandemonium.x11.opt.debug.64"
"pandemonium.x11.opt.debug.arm"
"pandemonium.x11.opt.debug.arm64"
"pandemonium.x11.opt.tools.32"
"pandemonium.x11.opt.tools.64"
"pandemonium.x11.opt.tools.arm"
"pandemonium.x11.opt.tools.arm64"
# Server (Linux)
"pandemonium_server.x11.opt.32"
"pandemonium_server.x11.opt.64"
"pandemonium_server.x11.opt.arm"
"pandemonium_server.x11.opt.arm64"
"pandemonium_server.x11.opt.debug.32"
"pandemonium_server.x11.opt.debug.64"
"pandemonium_server.x11.opt.debug.arm"
"pandemonium_server.x11.opt.debug.arm64"
"pandemonium_server.x11.opt.tools.32"
"pandemonium_server.x11.opt.tools.64"
"pandemonium_server.x11.opt.tools.arm"
"pandemonium_server.x11.opt.tools.arm64"
# HTTP Server (Linux)
"pandemonium_http_server.x11.opt.32"
"pandemonium_http_server.x11.opt.64"
"pandemonium_http_server.x11.opt.arm"
"pandemonium_http_server.x11.opt.arm64"
"pandemonium_http_server.x11.opt.debug.32"
"pandemonium_http_server.x11.opt.debug.64"
"pandemonium_http_server.x11.opt.debug.arm"
"pandemonium_http_server.x11.opt.debug.arm64"
# JS
"pandemonium.javascript.opt.zip"
"pandemonium.javascript.opt.debug.zip"
"pandemonium.javascript.opt.threads.zip"
"pandemonium.javascript.opt.debug.threads.zip"
"pandemonium.javascript.opt.tools.threads.zip"
"pandemonium.javascript.opt.gdnative.zip"
"pandemonium.javascript.opt.debug.gdnative.zip"
# Android
"android_source.zip"
"android_debug.apk"
"android_release.apk"
"android_editor.apk"
"pandemonium-lib.release.aar"
"pandemonium-lib.debug.aar"
# OSX
"pandemonium.osx.opt.universal"
"pandemonium.osx.opt.debug.universal"
"pandemonium.osx.opt.tools.universal"
# Note: These are not needed in the final release, only the universals.
"pandemonium.osx.opt.arm64"
"pandemonium.osx.opt.x86_64"
"pandemonium.osx.opt.debug.arm64"
"pandemonium.osx.opt.debug.x86_64"
"pandemonium.osx.opt.tools.arm64"
"pandemonium.osx.opt.tools.x86_64"
# iOS
"libpandemonium.iphone.opt.arm64.a"
"libpandemonium.iphone.opt.debug.arm64.a"
"libpandemonium.iphone.opt.debug.x86_64.simulator.a"
"libpandemonium.iphone.opt.x86_64.simulator.a"
# FRT
"pandemonium.frt.opt.arm32v6"
"pandemonium.frt.opt.arm32v7"
"pandemonium.frt.opt.arm64v8"
"pandemonium.frt.opt.debug.arm32v6"
"pandemonium.frt.opt.debug.arm32v7"
"pandemonium.frt.opt.debug.arm64v8"
# FRT SDL
"pandemonium.frt_sdl.opt.arm32v6"
"pandemonium.frt_sdl.opt.arm32v7"
"pandemonium.frt_sdl.opt.arm64v8"
"pandemonium.frt_sdl.opt.debug.arm32v6"
"pandemonium.frt_sdl.opt.debug.arm32v7"
"pandemonium.frt_sdl.opt.debug.arm64v8"
)
error=0

View File

@ -9,30 +9,22 @@ mkdir -p logs
# You can add --no-cache as an option to docker_build below to rebuild all containers from scratch
export docker_build="docker build --build-arg img_version=${img_version} "
docker build -t pandemonium-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log
$docker_build -t pandemonium-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log
$docker_build -t pandemonium-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log
$docker_build -t pandemonium-javascript:${img_version} -f Dockerfile.javascript . 2>&1 | tee logs/javascript.log
$docker_build -t pandemonium-android:${img_version} -f Dockerfile.android . 2>&1 | tee logs/android.log
docker build -t gdnative-python-fedora:${img_version} -f Dockerfile.base . 2>&1 | tee logs/base.log
$docker_build -t gdnative-python-linux:${img_version} -f Dockerfile.linux . 2>&1 | tee logs/linux.log
$docker_build -t gdnative-python-windows:${img_version} -f Dockerfile.windows . 2>&1 | tee logs/windows.log
XCODE_SDK=15.2
OSX_SDK=14.2
IOS_SDK=17.2
if [ ! -e files/MacOSX${OSX_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneOS${IOS_SDK}.sdk.tar.xz ] || [ ! -e files/iPhoneSimulator${IOS_SDK}.sdk.tar.xz ]; then
if [ ! -e files/MacOSX${OSX_SDK}.sdk.tar.xz ]; then
if [ ! -e files/Xcode_${XCODE_SDK}.xip ]; then
echo "files/Xcode_${XCODE_SDK}.xip is required. It can be downloaded from https://developer.apple.com/download/more/ with a valid apple ID."
exit 1
fi
echo "Building OSX and iOS SDK packages. This will take a while"
$docker_build -t pandemonium-xcode-packer:${img_version} -f Dockerfile.xcode . 2>&1 | tee logs/xcode.log
docker run -it --rm -v ${files_root}:/root/files -e XCODE_SDKV="${XCODE_SDK}" -e OSX_SDKV="${OSX_SDK}" -e IOS_SDKV="${IOS_SDK}" pandemonium-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log
$docker_build -t gdnative-python-xcode-packer:${img_version} -f Dockerfile.xcode . 2>&1 | tee logs/xcode.log
docker run -it --rm -v ${files_root}:/root/files -e XCODE_SDKV="${XCODE_SDK}" -e OSX_SDKV="${OSX_SDK}" gdnative-python-xcode-packer:${img_version} 2>&1 | tee logs/xcode_packer.log
fi
$docker_build -t pandemonium-osx:${img_version} -f Dockerfile.osx . 2>&1 | tee logs/osx.log
$docker_build -t pandemonium-ios:${img_version} -f Dockerfile.ios . 2>&1 | tee logs/ios.log
docker build -t pandemonium-frt-base:${img_version} -f Dockerfile.frt_base . 2>&1 | tee logs/frt_base.log
$docker_build -t pandemonium-frt-arm32:${img_version} -f Dockerfile.frt_arm32 . 2>&1 | tee logs/frt_arm32.log
$docker_build -t pandemonium-frt-arm64:${img_version} -f Dockerfile.frt_arm64 . 2>&1 | tee logs/frt_arm64.log
$docker_build -t gdnative-python-osx:${img_version} -f Dockerfile.osx . 2>&1 | tee logs/osx.log

View File

@ -3,95 +3,11 @@ set -e
export PATH="${GODOT_SDK_LINUX_X86_64}/bin:${BASE_PATH}"
export HTTP_SERVER_COMMANDS=" module_bmp_enabled=no module_broken_seals_module_enabled=no module_cscript_enabled=no module_csg_enabled=no module_dds_enabled=no module_enet_enabled=no module_entity_spell_system_enabled=no module_fastnoise_enabled=no module_freetype_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_layered_tile_map_enabled=no module_material_maker_enabled=no module_mesh_data_resource_enabled=no module_mesh_utils_enabled=no module_minimp3_enabled=no module_navigation_enabled=no module_navigation_geometry_parsers_enabled=no module_network_synchronizer_enabled=no module_ogg_enabled=no module_opensimplex_enabled=no module_opus_enabled=no module_paint_enabled=no module_navigation_mesh_generator_enabled=no module_props_enabled=no module_props_2d_enabled=no module_pvr_enabled=no module_regex_enabled=no module_skeleton_2d_enabled=no module_skeleton_3d_enabled=no module_squish_enabled=no module_stb_vorbis_enabled=no module_steering_ai_enabled=no module_terraman_enabled=no module_terraman_2d_enabled=no module_texture_packer_enabled=no module_tga_enabled=no module_theora_enabled=no module_tile_map_enabled=no module_ui_extensions_enabled=no module_unit_test_enabled=no module_upnp_enabled=no module_vertex_lights_2d_enabled=no module_vertex_lights_3d_enabled=no module_vhacd_enabled=no module_vorbis_enabled=no module_voxelman_enabled=no module_wfc_enabled=no module_cvtt_enabled=no module_editor_code_editor_enabled=no module_etc_enabled=no module_gltf_enabled=no module_plugin_refresher_enabled=no module_shader_editor_enabled=no module_text_editor_enabled=no module_tinyexr_enabled=no disable_advanced_gui=yes disable_3d=yes "
# Linux http server (templates) 64bit
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=64 "$@"
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release custom_modules_shared=no debug_symbols=no platform=server bits=64 "$@"
mv -f bin/pandemonium_server.x11.opt.64 bin/pandemonium_http_server.x11.opt.64
mv -f bin/pandemonium_server.x11.opt.debug.64 bin/pandemonium_http_server.x11.opt.debug.64
# Linux editor 64 bit
# Linux 64 bit
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 bits=64 "$@"
# Linux templates 64 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 bits=64 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=x11 bits=64 "$@"
# Linux headless (editor) 64 bit
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=64 "$@"
# Linux server (templates) 64 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=64 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=server bits=64 "$@"
export PATH="${GODOT_SDK_LINUX_X86_32}/bin:${BASE_PATH}"
# Linux http server (templates) 32 bit
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=32 "$@"
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release custom_modules_shared=no debug_symbols=no platform=server bits=32 "$@"
mv -f bin/pandemonium_server.x11.opt.32 bin/pandemonium_http_server.x11.opt.32
mv -f bin/pandemonium_server.x11.opt.debug.32 bin/pandemonium_http_server.x11.opt.debug.32
# Linux editor 32 bit
# Linux 32 bit
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 bits=32 "$@"
# Linux templates 32 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 bits=32 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=x11 bits=32 "$@"
# Linux headless (editor) 32 bit
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=32 "$@"
# Linux server (templates) 32 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server bits=32 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=server bits=32 "$@"
export PATH="${GODOT_SDK_LINUX_ARM64}/bin:${BASE_PATH}"
# Linux http server (templates) arm64
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm64 "$@"
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release custom_modules_shared=no debug_symbols=no platform=server arch=arm64 "$@"
mv -f bin/pandemonium_server.x11.opt.arm64 bin/pandemonium_http_server.x11.opt.arm64
mv -f bin/pandemonium_server.x11.opt.debug.arm64 bin/pandemonium_http_server.x11.opt.debug.arm64
# Linux editor arm64
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 arch=arm64 "$@"
# Linux templates arm64
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 arch=arm64 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=x11 arch=arm64 "$@"
# Linux headless (editor) arm64
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm64 "$@"
# Linux server (templates) arm64
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm64 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=server arch=arm64 "$@"
export PATH="${GODOT_SDK_LINUX_ARM32}/bin:${BASE_PATH}"
# Linux http server (templates) arm64
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm "$@"
scons production=yes ${HTTP_SERVER_COMMANDS} tools=no target=release custom_modules_shared=no debug_symbols=no platform=server arch=arm "$@"
mv -f bin/pandemonium_server.x11.opt.arm bin/pandemonium_http_server.x11.opt.arm
mv -f bin/pandemonium_server.x11.opt.debug.arm bin/pandemonium_http_server.x11.opt.debug.arm
# Linux editor arm
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 arch=arm "$@"
# Linux templates arm
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=x11 arch=arm "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=x11 arch=arm "$@"
# Linux headless (editor) arm
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm "$@"
# Linux server (templates) arm
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=server arch=arm "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=server arch=arm "$@"

View File

@ -1,24 +1,16 @@
#!/bin/bash
set -e
# OSX editor
# OSX
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=osx arch=x86_64 "$@" osxcross_sdk=darwin23.3
scons production=yes tools=yes target=release_debug custom_modules_shared=no debug_symbols=no platform=osx arch=arm64 "$@" osxcross_sdk=darwin23.3
# OSX templates release_debug
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=osx arch=x86_64 "$@" osxcross_sdk=darwin23.3
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=osx arch=arm64 "$@" osxcross_sdk=darwin23.3
# OSX templates release
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=osx arch=x86_64 "$@" osxcross_sdk=darwin23.3
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=osx arch=arm64 "$@" osxcross_sdk=darwin23.3
# OSX lipo
pushd misc/osx
#pushd misc/osx
./lipo.sh
#./lipo.sh
popd
#popd

View File

@ -1,18 +1,9 @@
#!/bin/bash
set -e
# Windows editor (release debug) 64 bit
# Windows 64 bit
scons production=yes tools=yes target=release_debug debug_symbols=no platform=windows bits=64 "$@"
# Windows editor (release debug) 32 bit
# Windows 32 bit
scons production=yes tools=yes target=release_debug debug_symbols=no platform=windows bits=32 "$@"
# Windows templates 64 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=windows bits=64 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=windows bits=64 "$@"
# Windows templates 32 bit
scons production=yes tools=no target=release_debug custom_modules_shared=no debug_symbols=no platform=windows bits=32 "$@"
scons production=yes tools=no target=release custom_modules_shared=no debug_symbols=no platform=windows bits=32 "$@"