# syntax=docker/dockerfile:1.7 # SPDX-License-Identifier: GPL-3.0-or-later ARG UBUNTU_IMAGE=ubuntu:26.04@sha256:651ba3fe3a830441e3deaf70fafac40d808a6bd2800a6f2c43130055159f23e6 FROM ${UBUNTU_IMAGE} AS build ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ bsdextrautils \ clang-18 \ clang-format-18 \ clang-tidy-18 \ cmake \ curl \ git \ lld-18 \ llvm-18-dev \ ninja-build \ python3 \ unzip \ && rm -rf /var/lib/apt/lists/* ARG PS5_SDK_URL=https://github.com/ps5-payload-dev/sdk/releases/download/v0.41/ps5-payload-sdk.zip ARG PS5_SDK_SHA256=ebfb0acb5260511951a80e17db41650c62d20a8caf8659a230b928dc85005984 RUN curl -fL --retry 3 --output /tmp/ps5-payload-sdk.zip "${PS5_SDK_URL}" \ && echo "${PS5_SDK_SHA256} /tmp/ps5-payload-sdk.zip" | sha256sum --check --strict \ && unzip -q /tmp/ps5-payload-sdk.zip -d /opt \ && rm /tmp/ps5-payload-sdk.zip ENV PS5_PAYLOAD_SDK=/opt/ps5-payload-sdk ENV LLVM_CONFIG=/usr/bin/llvm-config-18 WORKDIR /src COPY . /src RUN cmake -S /src -B /build/host -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_COMPILER=clang-18 \ -DCHIMERA_GFX_ENABLE_CLANG_TIDY=ON \ -DBUILD_TESTING=ON \ && cmake --build /build/host \ && ctest --test-dir /build/host --output-on-failure RUN cmake -S /src -B /build/ps5 -G Ninja \ -DCMAKE_TOOLCHAIN_FILE=/opt/ps5-payload-sdk/toolchain/prospero.cmake \ -DCHIMERA_GFX_BUILD_PS5_PROBE=ON \ -DCHIMERA_GFX_PS5_ALLOWED_FIRMWARE=NONE \ -DBUILD_TESTING=OFF \ && cmake --build /build/ps5 FROM scratch AS artifacts COPY --from=build /build/ps5/chimera-gfx-capability-probe.elf /