53 lines
1.7 KiB
Docker
53 lines
1.7 KiB
Docker
# 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 /
|