BT_STEAM restored as THE compile gate (license) -- default OFF
The unification flattened BT_STEAM into the always-on exe; the user flagged
the constraint that makes it the one legitimate compile gate: the Steamworks
SDK license bars a public release with Steam inside, so a release build must
exclude it entirely.
- CMakeLists: option(BT_STEAM OFF) restored around the Steamworks block --
an OFF configure touches no SDK headers, no steam_api.lib, no DLL copy.
BT_GLASS stays retired (always defined); ONE build dir either way.
Dev checkout: build/ configured once with -DBT_STEAM=ON.
- mkdist: reads BT_STEAM from build/CMakeCache.txt. Steam-OFF zips exclude
play_steam.bat + steam_api.dll (explicitly filtering a STALE DLL left by
an earlier ON build), strip the README steam section ({STEAM} line
markers), and take a -nosteam name suffix so the flavors never clobber
(found live: both stamped 4.11.436 and the release zip overwrote the dev
zip).
Verified both flavors:
ON (dev build): steam smoke degrades to Winsock without the client;
zip carries play_steam.bat + steam_api.dll + README steam lines.
OFF (scratch build-relcheck, deleted after): 0 compile errors; exe dir =
btl4.exe + OpenAL32.dll only; boots + simulates; BT_STEAM_NET=1 inert
(transport not in the binary); end-to-end zip has zero steam bits and
a clean README.
KB: context/glass-cockpit.md unified-build section records the license gate.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
dd74d13120
commit
d53fcf61ad
@@ -27,9 +27,17 @@ version skew (a stale steam exe shipped 2 days behind), tripled build time, and
|
||||
| `BT_STEAM_NET=1` | the Steam transport (FakeIP/SDR; degrades to Winsock without the Steam client). `steam_api.dll` is **DELAY-LOADED** (`/DELAYLOAD` + delayimp) — machines without the DLL run everything else |
|
||||
| (nothing) | the old pod-build behavior byte-for-byte: DEV profile, no menu, waits for the console egg — **the cabinet default is unchanged** |
|
||||
|
||||
- The `BT_GLASS`/`BT_STEAM` macros are now ALWAYS defined (seam markers only — the `#ifdef`
|
||||
sites remain as documentation of the layer boundaries). Every gated code path was audited:
|
||||
all are instance-guarded (`PadRIO::activeInstance`, `steamActive`) or env-gated at runtime.
|
||||
- The `BT_GLASS` macro is now ALWAYS defined (a seam marker only — the `#ifdef` sites remain
|
||||
as documentation of the layer boundary). Every gated code path was audited: all are
|
||||
instance-guarded (`PadRIO::activeInstance`, `steamActive`) or env-gated at runtime.
|
||||
- **`BT_STEAM` stays a COMPILE gate (the LICENSE gate, default OFF, restored 2026-07-21):**
|
||||
the Steamworks SDK terms bar a public release with Steam inside, so a release configure
|
||||
must be able to exclude it entirely — no SDK headers, no `steam_api.lib`, no DLL. The dev
|
||||
checkout configures `build/` once with `-DBT_STEAM=ON`. `mkdist.py` reads the answer from
|
||||
`build/CMakeCache.txt`: steam-OFF zips carry no `play_steam.bat`, no `steam_api.dll`
|
||||
(including a STALE one from an earlier ON build), a README with the steam section stripped,
|
||||
and a `-nosteam` name suffix so the two flavors never clobber. Verified both flavors:
|
||||
OFF exe has no steam bits + `BT_STEAM_NET=1` is inert; ON exe degrades to Winsock.
|
||||
- **Menu guard (cabinet protection):** the miniconsole previously claimed any zero-arg launch;
|
||||
unified, it requires `BT_PLATFORM=glass` (or `BT_FE_MENU=1`) — a bare cabinet boot can never
|
||||
land in the menu (btl4main.cpp, platform parse moved above the fe_menu_mode computation).
|
||||
|
||||
Reference in New Issue
Block a user