# Dockerfile for x86 (32-bit) builds # Uses native Debian i386 image (Ubuntu 22.04+ dropped i386 support) FROM --platform=linux/386 debian:bookworm ENV DEBIAN_FRONTEND=noninteractive ENV VCPKG_ROOT=/opt/vcpkg ENV PATH="${VCPKG_ROOT}:${PATH}" # Install base dependencies RUN apt-get update -y && apt-get -y upgrade && \ apt-get -y install \ build-essential \ gcc \ g++ \ git \ ninja-build \ curl \ zip \ unzip \ tar \ pkg-config \ wget \ file \ autoconf \ automake \ libtool \ python3 \ cmake \ libx11-dev \ libxrandr-dev \ libxi-dev \ libxinerama-dev \ libxcursor-dev \ libgl1-mesa-dev \ libopengl-dev \ libwayland-dev \ libxkbcommon-dev \ libasound2-dev \ libpulse-dev \ libudev-dev \ libdbus-1-dev \ libogg-dev \ libvorbis-dev \ libpng-dev \ zlib1g-dev \ libsdl2-dev \ nlohmann-json3-dev \ libspdlog-dev \ libboost-dev # Install tinyxml2 from source RUN wget https://github.com/leethomason/tinyxml2/archive/refs/tags/10.0.0.tar.gz && \ tar -xzf 10.0.0.tar.gz && \ cd tinyxml2-10.0.0 && \ mkdir -p build && cd build && \ cmake .. && \ make -j$(nproc) && \ make install && \ ldconfig && \ cd ../.. && \ rm -rf 10.0.0.tar.gz tinyxml2-10.0.0 # Install libzip from source (system package has broken CMake config) RUN wget https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz && \ tar -xzf libzip-1.10.1.tar.gz && \ cd libzip-1.10.1 && \ mkdir -p build && cd build && \ cmake .. -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DBUILD_TOOLS=OFF -DBUILD_DOC=OFF && \ make -j$(nproc) && \ make install && \ ldconfig && \ cd ../.. && \ rm -rf libzip-1.10.1.tar.gz libzip-1.10.1 # Note: vcpkg is not available for i386 (no prebuilt binary, bootstrap fails) # Using system packages instead - static linking handled by CMake WORKDIR /project