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.