mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-23 15:47:03 -04:00
6ed9a8ad28
* Fix macOS arm64 build: fmt consteval error in the TorchExternal sub-build Torch's pinned spdlog bundles an fmt whose consteval format-string checking fails to compile under newer AppleClang (Xcode 16+), breaking the build-macos-arm64 CI job (the intel runner's older Xcode doesn't hit it): error: call to consteval function 'fmt::basic_format_string<...>' is not a constant expression Define FMT_CONSTEVAL as empty inside the Torch sub-build, falling back to fmt's pre-C++20 constexpr checking. Injected via CMAKE_PROJECT_INCLUDE because Torch's CMakeLists overwrites CMAKE_CXX_FLAGS, so plain flag injection through CMAKE_ARGS is discarded. Scoped to AppleClang; no other platform or compiler is affected, and the Torch pin is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Also neutralize FMT_CONSTEVAL for the game build (vcpkg spdlog/fmt) With the TorchExternal fix in place, CI reaches the game build and hits the same consteval error again, this time from the vcpkg-provided spdlog/fmt headers (SPDLOG_FMT_EXTERNAL) under the runner's Xcode 26.5. Apply the same AppleClang-scoped FMT_CONSTEVAL= define at the project level so both layers compile. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Pin vcpkg fmt to 10.2.1 (+ spdlog 1.14.1): fmt 11.0.2 can't compile on new AppleClang The baseline's fmt 11.0.2 both fails to compile under newer AppleClang (consteval format-string checking) and removed the #ifndef guard around FMT_CONSTEVAL, so the AppleClang-scoped define from the previous commit lands on the compile line but gets clobbered by fmt's own definition (FMT_USE_CONSTEVAL is likewise unguarded in that version). No newer fmt exists in the pinned baseline. Override fmt to 10.2.1, which keeps the #ifndef guard, making the existing define effective; spdlog moves to the matching 1.14.1 (1.15.x requires fmt >= 11 headers). Verified locally against the exact CI setup (vcpkg at baseline 2e58bb35ff, vcpkg toolchain file, Ninja): the previous failure reproduces without this change and the full game builds cleanly with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add TODO markers for removing the fmt consteval workarounds Requested in PR #712 review: mark all three workaround sites (project-level define, Torch sub-build include, vcpkg fmt/spdlog pins) so they can be found and removed together once the Torch pin is bumped past its spdlog/fmt update. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: siliconports <aguthmann10@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
48 lines
1.5 KiB
JSON
48 lines
1.5 KiB
JSON
{
|
|
"name": "spaghettikart",
|
|
"version": "1.0.0",
|
|
"description": "A Mario Kart 64 port",
|
|
"homepage": "https://github.com/HarbourMasters/SpaghettiKart",
|
|
"dependencies": [
|
|
"zlib",
|
|
"bzip2",
|
|
"libzip",
|
|
"libpng",
|
|
{
|
|
"name": "sdl2",
|
|
"features": ["x11", "alsa", "wayland"],
|
|
"platform": "linux",
|
|
"default-features": false
|
|
},
|
|
{
|
|
"name": "sdl2",
|
|
"platform": "windows"
|
|
},
|
|
{
|
|
"name": "sdl2",
|
|
"platform": "osx"
|
|
},
|
|
"sdl2-net",
|
|
"glew",
|
|
"glfw3",
|
|
"nlohmann-json",
|
|
"tinyxml2",
|
|
"spdlog",
|
|
"libogg",
|
|
"libvorbis"
|
|
],
|
|
"overrides": [
|
|
{
|
|
"$reason": "fmt 11.0.2 (spdlog's dependency) fails to compile under newer AppleClang (consteval format-string checking) and hard-defines FMT_CONSTEVAL with no override guard, so it cannot be disabled either. 10.2.1 keeps the #ifndef guard, letting the AppleClang-scoped FMT_CONSTEVAL= define in CMakeLists.txt take effect. spdlog is pinned to the matching 1.14.1 (1.15.x requires fmt >= 11). TODO: Temporary hack. Remove both pins (plus the FMT_CONSTEVAL blocks in CMakeLists.txt and cmake/TorchExternalFixes.cmake) once the Torch pin is bumped past Torch's spdlog/fmt update. Note the bump also needs matching MK64 loader changes, see the discussion on PR #712.",
|
|
"name": "fmt",
|
|
"version": "10.2.1",
|
|
"port-version": 2
|
|
},
|
|
{
|
|
"name": "spdlog",
|
|
"version": "1.14.1"
|
|
}
|
|
],
|
|
"builtin-baseline": "2e58bb35ff7a3a037920d959ce20cb4d8c22319a"
|
|
}
|