From 8c9ffe972f43615f56eb28d5de88500f212d1379 Mon Sep 17 00:00:00 2001 From: Jonny Date: Mon, 17 Feb 2025 16:29:06 +0000 Subject: [PATCH] Fix iOS debug build and update xcode --- .github/workflows/ci.yml | 6 +++--- CMakeLists.txt | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5888b4fa1..3b6dd27c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,9 +44,9 @@ jobs: - { name: Linux GCC OpenGL ES, os: ubuntu-22.04, flags: -DSFML_OPENGL_ES=ON -DSFML_RUN_DISPLAY_TESTS=OFF -GNinja } - { name: macOS x64, os: macos-13, flags: -GNinja } - { name: macOS x64 Xcode, os: macos-13, flags: -GXcode } - - { name: macOS arm64, os: macos-14, flags: -GNinja -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF } - - { name: iOS, os: macos-14, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 } - - { name: iOS Xcode, os: macos-14, flags: -DCMAKE_SYSTEM_NAME=iOS -GXcode -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO } + - { name: macOS arm64, os: macos-15, flags: -GNinja -DSFML_RUN_AUDIO_DEVICE_TESTS=OFF } + - { name: iOS, os: macos-15, flags: -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 } + - { name: iOS Xcode, os: macos-15, flags: -DCMAKE_SYSTEM_NAME=iOS -GXcode -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO } config: - { name: Shared, flags: -DBUILD_SHARED_LIBS=ON } - { name: Static, flags: -DBUILD_SHARED_LIBS=OFF } diff --git a/CMakeLists.txt b/CMakeLists.txt index 73da03816..626b2bff3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,9 +183,15 @@ endif() option(SFML_ENABLE_STDLIB_ASSERTIONS "Enable standard library assertions" OFF) if(SFML_ENABLE_STDLIB_ASSERTIONS) - # intentionally using `add_definitions` here to propagate defines to subdirectories - add_definitions(-D_GLIBCXX_ASSERTIONS=1) # see https://gcc.gnu.org/wiki/LibstdcxxDebugMode - add_definitions(-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE) # see https://libcxx.llvm.org/Hardening.html + # intentionally using `add_compile_definitions` here to propagate defines to subdirectories + add_compile_definitions(_GLIBCXX_ASSERTIONS=1) # see https://gcc.gnu.org/wiki/LibstdcxxDebugMode + + # Xcode has a property to control this - adding the define ourselves causes multiple definitions + if(XCODE) + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_STANDARD_LIBRARY_HARDENING "Yes (extensive)") + else() + add_compile_definitions(_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE) # see https://libcxx.llvm.org/Hardening.html + endif() endif() # set the output directory for SFML DLLs and executables