From d5aaa463c801cbda3f2f43b70fd780385211bcaf Mon Sep 17 00:00:00 2001 From: Ioannis Giannakas <59056762+igiannakas@users.noreply.github.com> Date: Sat, 26 Sep 2026 17:20:17 +0100 Subject: [PATCH] Fix MacOS 27 Xcode and Command Line build failures (#15923) --- CMakeLists.txt | 9 +++++++-- build_release_macos.sh | 4 ++-- deps/CMakeLists.txt | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f8e994758..3a7b8adf5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,9 +56,9 @@ You can do this in Environment Variables settings. endif () if (APPLE) - # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3 + # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 12.0 (the lowest Xcode 27 accepts) if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE) + set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OS X deployment version" FORCE) endif () message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}") endif () @@ -279,6 +279,11 @@ if (APPLE) endif() SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.orcaslicer.OrcaSlicer") + # The macOS CI jobs build with Ninja (build_release_macos.sh -x), so the Xcode generator + # is not covered. Xcode adds -Wshorten-64-to-32 by default ("Implicit Conversion to 32 Bit + # Type"); Ninja/-Wall does not, and under -Werror it fails Xcode builds on code CI accepts. + set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION "NO") + message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}") elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") set(CMAKE_INSTALL_RPATH "$ORIGIN") diff --git a/build_release_macos.sh b/build_release_macos.sh index b1de5df2e4..db03cb4ecd 100755 --- a/build_release_macos.sh +++ b/build_release_macos.sh @@ -53,7 +53,7 @@ while getopts ":dpa:snt:xbc:i:j:Tuh" opt; do echo " -s: Build slicer only" echo " -u: Build universal app only (requires existing arm64 and x86_64 app bundles)" echo " -n: Nightly build" - echo " -t: Specify minimum version of the target platform, default is 11.3" + echo " -t: Specify minimum version of the target platform, default is 12.0" echo " -x: Use Ninja Multi-Config CMake generator, default is Xcode" echo " -b: Build without reconfiguring CMake" echo " -c: Set CMake build configuration, default is Release" @@ -95,7 +95,7 @@ if [ -z "$DEPS_CMAKE_GENERATOR" ]; then fi if [ -z "$OSX_DEPLOYMENT_TARGET" ]; then - export OSX_DEPLOYMENT_TARGET="11.3" + export OSX_DEPLOYMENT_TARGET="12.0" fi if [ -z "$CMAKE_IGNORE_PREFIX_PATH" ]; then diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 0e7141c12c..502e5df071 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -26,9 +26,9 @@ endif() cmake_minimum_required(VERSION 3.2) if (APPLE) - # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 11.3 + # if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 12.0 (the lowest Xcode 27 accepts) if (NOT CMAKE_OSX_DEPLOYMENT_TARGET) - set(CMAKE_OSX_DEPLOYMENT_TARGET "11.3" CACHE STRING "Minimum OS X deployment version" FORCE) + set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum OS X deployment version" FORCE) endif () message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")