compatibilitytool.vdf: Make sure internal tool name includes 'proton'.

This matters for builds dropped into compatibilitytools.d/. Steam uses
the internal tool name to detect it's Proton and alters some behavior
regarding how cloud saves work.

Not including Proton in the name may lead to confusing behavior
regarding saves where they are present on some builds but vanish on the
other, only to reappear when switching back.
This commit is contained in:
Arkadiusz Hiler 2025-01-07 12:35:40 +02:00
parent b0df23cb5c
commit 0abb95b7e7
3 changed files with 11 additions and 4 deletions

View File

@ -1171,8 +1171,9 @@ all-dist: $(DIST_TOOLMANIFEST)
COMPAT_MANIFEST_TEMPLATE := $(SRCDIR)/compatibilitytool.vdf.template
DIST_COMPAT_MANIFEST := $(DST_BASE)/compatibilitytool.vdf
INTERNAL_TOOL_NAME ?= $(BUILD_NAME)-proton
$(DIST_COMPAT_MANIFEST): $(COMPAT_MANIFEST_TEMPLATE) | $(DST_DIR)
sed -r 's|##BUILD_NAME##|$(BUILD_NAME)|' $< > $@
sed -r -e 's|##BUILD_NAME##|$(BUILD_NAME)|' -e 's|##INTERNAL_TOOL_NAME##|$(INTERNAL_TOOL_NAME)|' $< > $@
all-dist: $(DIST_COMPAT_MANIFEST)

View File

@ -2,7 +2,7 @@
{
"compat_tools"
{
"##BUILD_NAME##" // Internal name of this tool
"##INTERNAL_TOOL_NAME##" // Internal name of this tool
{
// Can register this tool with Steam in two ways:
//

View File

@ -114,8 +114,13 @@ function configure() {
if [[ -n $build_name ]]; then
info "Configuring with build name: $build_name"
else
build_name="$DEFAULT_BUILD_NAME"
info "No build name specified, using default: $build_name"
build_name="$DEFAULT_BUILD_NAME" info "No build name specified, using default: $build_name"
fi
if [[ ${build_name,,} == *proton* ]]; then
internal_tool_name=${build_name}
else
internal_tool_name=${build_name}-proton
fi
dependency_command make "GNU Make"
@ -153,6 +158,7 @@ function configure() {
echo ""
echo "SRCDIR := $(escape_for_make "$srcdir")"
echo "BUILD_NAME := $(escape_for_make "$build_name")"
echo "INTERNAL_TOOL_NAME := $(escape_for_make "$internal_tool_name")"
# SteamRT was specified, baking it into the Makefile
if [[ -n $arg_protonsdk_image ]]; then