From 1b5f3a90233055ce0c496d4c711b020938644013 Mon Sep 17 00:00:00 2001 From: mohamedelabbas1996 Date: Sun, 28 Jun 2026 04:17:46 -0400 Subject: [PATCH] SagePatch: pin target to C++17 so macOS builds The sage_patch sources use modern C++ (scoped enums, brace-init), but the target sets no C++ standard and inherits the engine's global C++98. With a standards-strict compiler (AppleClang) this fails: error: scoped enumerations are a C++11 extension Pin sage_patch to CXX_STANDARD 17 so it builds on macOS. --- Patches/SagePatch/CMakeLists.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Patches/SagePatch/CMakeLists.txt b/Patches/SagePatch/CMakeLists.txt index cad8b5a2df2..a7b96e0586f 100644 --- a/Patches/SagePatch/CMakeLists.txt +++ b/Patches/SagePatch/CMakeLists.txt @@ -42,6 +42,15 @@ endif() add_library(sage_patch SHARED ${SAGE_PATCH_SOURCES}) +# SagePatch sources use modern C++ (scoped enums, brace-init). The legacy engine +# builds at C++98, and without pinning a standard here the target inherits it, +# so a standards-strict compiler (e.g. AppleClang) fails to build sage_patch with +# "scoped enumerations are a C++11 extension". Pin this target to C++17. +set_target_properties(sage_patch PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON +) + target_include_directories(sage_patch PRIVATE include ${CMAKE_BINARY_DIR}/_deps/sdl3-src/include