Xcode build fails on macOS 15.1

I followed the build instructions here:
https://developer.blender.org/docs/handbook/building_blender/mac/
and here:
https://developer.blender.org/docs/handbook/development_environments/xcode/

Building on the terminal works without any problems.
When I try to compile with Xcode 16.1 I get following errors:

'MTLMotionBorderMode' is only available on macOS 12.0 or newer [-Werror,-Wunguarded-availability-new]
  860 |     MTLMotionBorderMode motionStartBorderMode;
      |     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:152:27: note: 'MTLMotionBorderMode' has been marked as being introduced in macOS 12.0 here, but the deployment target is macOS 11.2.0
  152 | typedef NS_ENUM(uint32_t, MTLMotionBorderMode){
      |                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:817:9: note: annotate anonymous struct with an availability attribute to silence this warning
  817 | typedef struct {
      |         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:866:5: error: 'MTLMotionBorderMode' is only available on macOS 12.0 or newer [-Werror,-Wunguarded-availability-new]
  866 |     MTLMotionBorderMode motionEndBorderMode;
      |     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:152:27: note: 'MTLMotionBorderMode' has been marked as being introduced in macOS 12.0 here, but the deployment target is macOS 11.2.0
  152 | typedef NS_ENUM(uint32_t, MTLMotionBorderMode){
      |                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:817:9: note: annotate anonymous struct with an availability attribute to silence this warning
  817 | typedef struct {
      |         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:910:5: error: 'MTLResourceID' is only available on macOS 13.0 or newer [-Werror,-Wunguarded-availability-new]
  910 |     MTLResourceID accelerationStructureID;
      |     ^
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.mm:7:
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.h:9:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h:9:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h:115:3: note: 'MTLResourceID' has been marked as being introduced in macOS 13.0 here, but the deployment target is macOS 11.2.0
  115 | } MTLResourceID API_AVAILABLE(macos(13.0), ios(16.0));
      |   ^
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.mm:7:
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.h:9:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h:35:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLHeap.h:15:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:880:9: note: annotate anonymous struct with an availability attribute to silence this warning
  880 | typedef struct {
      |         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:938:5: error: 'MTLResourceID' is only available on macOS 13.0 or newer [-Werror,-Wunguarded-availability-new]
  938 |     MTLResourceID accelerationStructureID;
      |     ^
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.mm:7:
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.h:9:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h:9:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h:115:3: note: 'MTLResourceID' has been marked as being introduced in macOS 13.0 here, but the deployment target is macOS 11.2.0
  115 | } MTLResourceID API_AVAILABLE(macos(13.0), ios(16.0));
      |   ^
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.mm:7:
In file included from /Users/gerhardgubler/code/blender-git/blender/intern/cycles/device/metal/util.h:9:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h:35:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLHeap.h:15:
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:913:9: note: annotate anonymous struct with an availability attribute to silence this warning
  913 | typedef struct {
      |         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:956:5: error: 'MTLMotionBorderMode' is only available on macOS 12.0 or newer [-Werror,-Wunguarded-availability-new]
  956 |     MTLMotionBorderMode motionStartBorderMode;
      |     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:152:27: note: 'MTLMotionBorderMode' has been marked as being introduced in macOS 12.0 here, but the deployment target is macOS 11.2.0
  152 | typedef NS_ENUM(uint32_t, MTLMotionBorderMode){
      |                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:913:9: note: annotate anonymous struct with an availability attribute to silence this warning
  913 | typedef struct {
      |         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:962:5: error: 'MTLMotionBorderMode' is only available on macOS 12.0 or newer [-Werror,-Wunguarded-availability-new]
  962 |     MTLMotionBorderMode motionEndBorderMode;
      |     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:152:27: note: 'MTLMotionBorderMode' has been marked as being introduced in macOS 12.0 here, but the deployment target is macOS 11.2.0
  152 | typedef NS_ENUM(uint32_t, MTLMotionBorderMode){
      |                           ^
/Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLAccelerationStructure.h:913:9: note: annotate anonymous struct with an availability attribute to silence this warning
  913 | typedef struct {
      |         ^
14 warnings and 6 errors generated.

I could see that in CMakeCache.txt
CMAKE_OSX_DEPLOYMENT_TARGET:STRING=11.2
I changed it to 15.1 re-built but the error remains.

What else could I try ? I’m guessing it’s really an Xcode issue. But I guess chances are good someone here as run into the same ?

[Edit:] It’s probably worth mentioning that I had a little chat with GPT which suggested to build with the option -DWITH_CYCLES_MOTION_BLUR=OFF
this actually builds successfully and I can run blender 4.4.0 Alpha like that.

WITH_CYCLES_MOTION_BLUR does not exist, it was made up by ChatGPT.

Something must have gotten refreshed while doing other changes. Guessing from the build log, probably some incorrect mixing of command line tools and Xcode.

2 Likes

Ha! good spotting. Thanx.