From 2af04b6eee7e6154ebc22ae5275a77fb38a1032f Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 19 Nov 2025 09:45:43 +0100 Subject: [PATCH] [godot] Fix iOS build error with Vulkan headers and C++ modules Adds compiler flag -Wno-error=module-import-in-extern-c to suppress compilation errors when building for iOS with newer Xcode versions. The Vulkan headers include stdint.h inside extern "C" blocks, which conflicts with C++ modules. The fix is applied via a patch file during setup.sh execution. --- spine-godot/build/ios-vulkan-fix.patch | 14 ++++++++++++++ spine-godot/build/setup.sh | 8 ++++++++ 2 files changed, 22 insertions(+) create mode 100644 spine-godot/build/ios-vulkan-fix.patch diff --git a/spine-godot/build/ios-vulkan-fix.patch b/spine-godot/build/ios-vulkan-fix.patch new file mode 100644 index 000000000..205d69c87 --- /dev/null +++ b/spine-godot/build/ios-vulkan-fix.patch @@ -0,0 +1,14 @@ +diff --git a/platform/ios/detect.py b/platform/ios/detect.py +index 53b367a0a7..aea9424abe 100644 +--- a/platform/ios/detect.py ++++ b/platform/ios/detect.py +@@ -144,6 +144,9 @@ def configure(env: "SConsEnvironment"): + # Temp fix for ABS/MAX/MIN macros in iOS SDK blocking compilation + env.Append(CCFLAGS=["-Wno-ambiguous-macro"]) + ++ # Fix for C++ module imports in extern "C" blocks in Vulkan headers ++ env.Append(CCFLAGS=["-Wno-error=module-import-in-extern-c"]) ++ + env.Prepend( + CPPPATH=[ + "$IOS_SDK_PATH/usr/include", diff --git a/spine-godot/build/setup.sh b/spine-godot/build/setup.sh index 1739bb673..c56e9cef1 100755 --- a/spine-godot/build/setup.sh +++ b/spine-godot/build/setup.sh @@ -70,6 +70,14 @@ if [ "$branch" = "4.3-stable" ]; then popd fi +# Apply iOS Vulkan fix for C++ module imports in extern "C" blocks +# This fixes compilation errors with newer Xcode versions +pushd godot +if [ -f ../build/ios-vulkan-fix.patch ]; then + git apply ../build/ios-vulkan-fix.patch +fi +popd + popd # Generate compile_commands.json for IDE integration (only in dev mode)