Build: Update macOS libraries for Blender 4.2 #123348

Merged
Brecht Van Lommel merged 1 commits from farsthary/blender:macos_armx64_libs into blender-v4.2-release 2024-06-24 11:29:58 +02:00

Ref #118455


Tested and Blender and dependencies compiles correctly on macOS.

Note:
Replaces #123290 and applied the feedback from that PR.

Still to be done:

  • Fix linking to homebrew jpeg, verify with otool -L
  • Add back missing OpenImageDenoise cmake files for arm64
  • Add x64 libraries updates
Ref #118455 --- Tested and Blender and dependencies compiles correctly on macOS. Note: Replaces #123290 and applied the feedback from that PR. Still to be done: * [x] Fix linking to homebrew jpeg, verify with `otool -L` * [x] Add back missing OpenImageDenoise cmake files for arm64 * [x] Add x64 libraries updates
Raul Fernandez Hernandez requested review from Brecht Van Lommel 2024-06-18 05:35:16 +02:00
Raul Fernandez Hernandez requested review from Ray molenkamp 2024-06-18 05:35:18 +02:00
Raul Fernandez Hernandez added this to the Platforms, Builds Tests & Devices project 2024-06-18 05:35:35 +02:00
Author
Member

@blender-bot build macos-arm64

@blender-bot build macos-arm64

Thanks. I updated the description to summarize what still needs to be done.

Thanks. I updated the description to summarize what still needs to be done.
Author
Member

I wonder where the missing OpenImageDenoise cmake files got deleted?
I build deps directly from the repo without changing anything at first

I wonder where the missing OpenImageDenoise cmake files got deleted? I build deps directly from the repo without changing anything at first

Not sure I understand the question. They were missing due to the issue in harvest.cmake that this PR corrects? They should be there again when you build the libs with this PR.

Not sure I understand the question. They were missing due to the issue in `harvest.cmake` that this PR corrects? They should be there again when you build the libs with this PR.
Author
Member

this is the result of otool -L

➜  bin otool -L Blender.app/Contents/MacOS/Blender
Blender.app/Contents/MacOS/Blender:
	@rpath/liboslexec.dylib (compatibility version 1.13.0, current version 1.13.7)
	@rpath/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 2503.1.0)
	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105)
	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 24.0.0)
	/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 170.0.0)
	/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0)
	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 343.19.0)
	/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0)
	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
	/System/Library/Frameworks/ForceFeedback.framework/Versions/A/ForceFeedback (compatibility version 1.0.0, current version 1.0.2)
	/System/Library/Frameworks/GameController.framework/Versions/A/GameController (compatibility version 1.0.0, current version 11.5.1)
	/System/Library/Frameworks/CoreHaptics.framework/Versions/A/CoreHaptics (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	@rpath/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libosdGPU.dylib (compatibility version 3.6.0, current version 0.0.0)
	@rpath/libosdCPU.dylib (compatibility version 3.6.0, current version 0.0.0)
	@rpath/libembree4.dylib (compatibility version 4.0.0, current version 4.0.0)
	@rpath/libOpenImageIO.dylib (compatibility version 2.5.0, current version 2.5.11)
	@rpath/libOpenImageIO_Util.dylib (compatibility version 2.5.0, current version 2.5.11)
	@rpath/liboslcomp.dylib (compatibility version 1.13.0, current version 1.13.7)
	@rpath/liboslquery.dylib (compatibility version 1.13.0, current version 1.13.7)
	@rpath/liboslnoise.dylib (compatibility version 1.13.0, current version 1.13.7)
	@rpath/libOpenColorIO.dylib (compatibility version 2.3.0, current version 2.3.2)
	@rpath/libboost_python311.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libOpenImageDenoise.dylib (compatibility version 2.0.0, current version 2.3.0)
	@rpath/libMaterialXFormat.dylib (compatibility version 1.0.0, current version 1.38.8)
	@rpath/libMaterialXCore.dylib (compatibility version 1.0.0, current version 1.38.8)
	@rpath/libusd_ms.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2)
	/System/Library/Frameworks/OpenAL.framework/Versions/A/OpenAL (compatibility version 1.0.0, current version 1.0.0)
	@rpath/libopenvdb.dylib (compatibility version 11.0.0, current version 11.0.0)
	@rpath/libIex.dylib (compatibility version 31.0.0, current version 31.3.2)
	@rpath/libOpenEXR.dylib (compatibility version 31.0.0, current version 31.3.2)
	@rpath/libOpenEXRCore.dylib (compatibility version 31.0.0, current version 31.3.2)
	@rpath/libIlmThread.dylib (compatibility version 31.0.0, current version 31.3.2)
	@rpath/libImath.dylib (compatibility version 30.0.0, current version 30.0.1)
	@rpath/libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_wave.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_locale.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_iostreams.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_chrono.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_atomic.dylib (compatibility version 0.0.0, current version 0.0.0)
	@rpath/libboost_serialization.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.12)
	/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 2503.1.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1774.5.3)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
this is the result of` otool -L` ``` ➜ bin otool -L Blender.app/Contents/MacOS/Blender Blender.app/Contents/MacOS/Blender: @rpath/liboslexec.dylib (compatibility version 1.13.0, current version 1.13.7) @rpath/libomp.dylib (compatibility version 5.0.0, current version 5.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 1226.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 2503.1.0) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2487.60.105) /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 24.0.0) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 170.0.0) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 343.19.0) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/ForceFeedback.framework/Versions/A/ForceFeedback (compatibility version 1.0.0, current version 1.0.2) /System/Library/Frameworks/GameController.framework/Versions/A/GameController (compatibility version 1.0.0, current version 11.5.1) /System/Library/Frameworks/CoreHaptics.framework/Versions/A/CoreHaptics (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) @rpath/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libosdGPU.dylib (compatibility version 3.6.0, current version 0.0.0) @rpath/libosdCPU.dylib (compatibility version 3.6.0, current version 0.0.0) @rpath/libembree4.dylib (compatibility version 4.0.0, current version 4.0.0) @rpath/libOpenImageIO.dylib (compatibility version 2.5.0, current version 2.5.11) @rpath/libOpenImageIO_Util.dylib (compatibility version 2.5.0, current version 2.5.11) @rpath/liboslcomp.dylib (compatibility version 1.13.0, current version 1.13.7) @rpath/liboslquery.dylib (compatibility version 1.13.0, current version 1.13.7) @rpath/liboslnoise.dylib (compatibility version 1.13.0, current version 1.13.7) @rpath/libOpenColorIO.dylib (compatibility version 2.3.0, current version 2.3.2) @rpath/libboost_python311.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libOpenImageDenoise.dylib (compatibility version 2.0.0, current version 2.3.0) @rpath/libMaterialXFormat.dylib (compatibility version 1.0.0, current version 1.38.8) @rpath/libMaterialXCore.dylib (compatibility version 1.0.0, current version 1.38.8) @rpath/libusd_ms.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.120.2) /System/Library/Frameworks/OpenAL.framework/Versions/A/OpenAL (compatibility version 1.0.0, current version 1.0.0) @rpath/libopenvdb.dylib (compatibility version 11.0.0, current version 11.0.0) @rpath/libIex.dylib (compatibility version 31.0.0, current version 31.3.2) @rpath/libOpenEXR.dylib (compatibility version 31.0.0, current version 31.3.2) @rpath/libOpenEXRCore.dylib (compatibility version 31.0.0, current version 31.3.2) @rpath/libIlmThread.dylib (compatibility version 31.0.0, current version 31.3.2) @rpath/libImath.dylib (compatibility version 30.0.0, current version 30.0.1) @rpath/libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_wave.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_locale.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_iostreams.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_chrono.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_atomic.dylib (compatibility version 0.0.0, current version 0.0.0) @rpath/libboost_serialization.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.12) /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1700.255.5) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 2503.1.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1774.5.3) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) ```
Author
Member

Not sure I understand the question. They were missing due to the issue in harvest.cmake that this PR corrects? They should be there again when you build the libs with this PR.

for sure I'm missing something but none of the libraries built with make deps in the lib output folder have cmake files

> Not sure I understand the question. They were missing due to the issue in `harvest.cmake` that this PR corrects? They should be there again when you build the libs with this PR. for sure I'm missing something but none of the libraries built with `make deps` in the lib output folder have `cmake` files

Did you do anything to resolve OpenImageIO linking to the homebrew openjpeg?

I don't remember if otool checks libraries recursively, but you could also check the output of:

otool -L Blender.app/Contents/Resources/lib/*.dylib
Did you do anything to resolve OpenImageIO linking to the homebrew openjpeg? I don't remember if otool checks libraries recursively, but you could also check the output of: ``` otool -L Blender.app/Contents/Resources/lib/*.dylib ```
Author
Member

@blender-bot build macos-arm64

@blender-bot build macos-arm64
Author
Member

built the x64 libs but git do not captured the change, not sure how to push it here

built the x64 libs but git do not captured the change, not sure how to push it here
Author
Member

@blender-bot build macos-arm64

@blender-bot build macos-arm64
Author
Member

@blender-bot build macos-arm64

@blender-bot build macos-arm64

@blender-bot build macos-x86_64

@blender-bot build macos-x86_64
Author
Member

@blender-bot build macos-x86_64

@blender-bot build macos-x86_64
Author
Member

@blender-bot build macos-arm64

@blender-bot build macos-arm64
Author
Member

when I switch between make and make deps it somehow reset the materialx lib?

when I switch between make and make deps it somehow reset the materialx lib?
Author
Member

doing cd libs/macos_x64 && git checkout HEAD -- materialx/lib/cmake seems to change nothing

doing `cd libs/macos_x64 && git checkout HEAD -- materialx/lib/cmake` seems to change nothing

I am not sure how make could reset the libraries. It seems what you need to do is to run the dependency builder once again, to ensure it installs proper files. Checking out materialx/lib/cmake wouldn't help as the current stats in Git seems to inconsistent from the arm64 CMake scripts.

I am not sure how `make` could reset the libraries. It seems what you need to do is to run the dependency builder once again, to ensure it installs proper files. Checking out `materialx/lib/cmake` wouldn't help as the current stats in Git seems to inconsistent from the arm64 CMake scripts.

The MaterialX cmake config stuff requires some manual tweaks. I've automated it now, will push to blender-v4.2-release if the builds work.

@blender-bot package macos

The MaterialX cmake config stuff requires some manual tweaks. I've automated it now, will push to `blender-v4.2-release` if the builds work. @blender-bot package macos
Member

Package build started. Download here when ready.

Package build started. [Download here](https://builder.blender.org/download/patch/PR123348) when ready.
Author
Member

Thanks @brecht ! I did not see this update and pushed some changes and was getting update conflicts
please double check I did not mess up your latest update on remote repo?

Thanks @brecht ! I did not see this update and pushed some changes and was getting update conflicts please double check I did not mess up your latest update on remote repo?
Raul Fernandez Hernandez changed title from WIP: MacOS arm_x64 library updates to MacOS arm_x64 library updates 2024-06-21 17:30:11 +02:00

Yes, I pushed changes to the branches in the various repositories. I also pushed the build system fixes to blender-v4.2-release.

Both arm64 and x64 built, passed tests and code signed successfully now.

I think all that remains now is landing this change. I will do that on Monday or Tuesday, to avoid breaking things for the weekend.

Yes, I pushed changes to the branches in the various repositories. I also pushed the build system fixes to `blender-v4.2-release`. Both arm64 and x64 built, passed tests and code signed successfully now. I think all that remains now is landing this change. I will do that on Monday or Tuesday, to avoid breaking things for the weekend.
Author
Member

Awesome! thanks a lot!

Awesome! thanks a lot!
Brecht Van Lommel changed title from MacOS arm_x64 library updates to Build: Update macOS libraries for Blender 4.2 2024-06-21 18:15:31 +02:00
Brecht Van Lommel force-pushed macos_armx64_libs from 44a046b9ba to b50de2c06f 2024-06-21 18:17:31 +02:00 Compare
Brecht Van Lommel approved these changes 2024-06-21 18:17:35 +02:00

@blender-bot build macos

@blender-bot build macos

I already pushed everything to the library repositories now. So landing next week should just be a matter of clicking the button.

I already pushed everything to the library repositories now. So landing next week should just be a matter of clicking the button.
Brecht Van Lommel merged commit 33b8147678 into blender-v4.2-release 2024-06-24 11:29:58 +02:00
Brecht Van Lommel deleted branch macos_armx64_libs 2024-06-24 11:30:02 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#123348
No description provided.