mirror of
https://github.com/kamb205/KB-RPCS3.git
synced 2026-10-18 12:00:51 +02:00
37 lines
1.7 KiB
Bash
Executable File
37 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# PS5 Vulkan Template - the payload SDK this title builds with, at a pinned revision.
|
|
#
|
|
# ps5/tools/setup-sdk.sh install it into .deps/native/ps5-payload-sdk (once a revision)
|
|
#
|
|
# The SDK is my fork, ../PS5_PayloadSDK: the upstream release with the PS5
|
|
# platform layer (libps5platform.a, include/ps5platform) installed over it. The
|
|
# pinned revision is exported with git archive, so a build never depends on the
|
|
# fork's working tree, and the SDK directory records it, as PS5 RetroArch and
|
|
# PS5 vkQuake pin theirs. RADV's archive, its link recipe and the packaging
|
|
# tools stay PS5_Vulkan's.
|
|
#
|
|
# Copyright (C) 2026 Mihawk
|
|
# SPDX-License-Identifier: MIT
|
|
set -euo pipefail
|
|
root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)
|
|
cache="$root/.deps/native"
|
|
sdk="$cache/ps5-payload-sdk"
|
|
sdk_fork="${PS5_PAYLOAD_SDK_FORK:-$root/../PS5_PayloadSDK}"
|
|
# adc8dd7: /data through the Lapy daemon (ps5platform/elevation.h), an opt-in no sample calls.
|
|
# Never older than fa69d00, the platform layer's localeconv in the C locale (ps5_localeconv).
|
|
sdk_revision=adc8dd795ada7bf696cd98748aae463a3970ffbb
|
|
|
|
if [[ ! -f $sdk/.ps5-sdk-revision || $(<"$sdk/.ps5-sdk-revision") != "$sdk_revision" ]]; then
|
|
git -C "$sdk_fork" cat-file -e "$sdk_revision^{commit}" 2>/dev/null || {
|
|
echo "the payload SDK fork at $sdk_fork does not have $sdk_revision" >&2
|
|
exit 2
|
|
}
|
|
mkdir -p "$cache"
|
|
sdk_tree=$(mktemp -d)
|
|
git -C "$sdk_fork" archive "$sdk_revision" | tar -x -C "$sdk_tree"
|
|
bash "$sdk_tree/platform/tools/setup-sdk.sh" "$sdk" "$sdk_revision" "$cache" >&2
|
|
rm -rf -- "$sdk_tree"
|
|
fi
|
|
[[ -x $sdk/bin/prospero-lld && -d $sdk/target/include ]] || { echo "the pinned PS5 payload SDK is incomplete" >&2; exit 2; }
|
|
echo "$sdk"
|