[Bf-blender-cvs] [886486615b3] master: macOS: use precompiled libraries for arm64 build

Brecht Van Lommel noreply at git.blender.org
Tue Feb 2 12:20:22 CET 2021


Commit: 886486615b35ee7bc6e48d2a4299f1254939f73b
Author: Brecht Van Lommel
Date:   Mon Feb 1 22:34:16 2021 +0100
Branches: master
https://developer.blender.org/rB886486615b35ee7bc6e48d2a4299f1254939f73b

macOS: use precompiled libraries for arm64 build

Standard wiki build instructions for building Blender on macOS can now be used
on Macs with ARM processors.

This contains all libraries except for Embree and OpenImageDenoise, so Cycles
performance does not yet have full performance and features in this build. An
x86-64 build is likely to still render faster than arm64 until Embree is added.

Uses the new lib/darwin_arm64 folder. For simplicity and to keep download size
under control, both for end users and builders, we are not planning to ship
universal binaries. So this is a separate folder from lib/darwin.

Ref T78710

Differential Revision: https://developer.blender.org/D10276

===================================================================

M	GNUmakefile
M	build_files/cmake/platform/platform_apple.cmake
M	build_files/utils/make_update.py

===================================================================

diff --git a/GNUmakefile b/GNUmakefile
index 532f9cb9bde..98463891407 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -183,8 +183,13 @@ endif
 ifndef DEPS_INSTALL_DIR
 	DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_NCASE)
 
-	ifneq ($(OS_NCASE),darwin)
-		# Add processor type to directory name
+	# Add processor type to directory name, except for darwin x86_64
+	# which by convention does not have it.
+	ifeq ($(OS_NCASE),darwin)
+		ifneq ($(CPU),x86_64)
+			DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
+		endif
+	else
 		DEPS_INSTALL_DIR:=$(DEPS_INSTALL_DIR)_$(CPU)
 	endif
 endif
@@ -198,7 +203,7 @@ endif
 # in libraries, or python 2 for running make update to get it.
 ifeq ($(OS_NCASE),darwin)
 	ifeq (, $(shell command -v $(PYTHON)))
-		PYTHON:=../lib/darwin/python/bin/python3.7m
+		PYTHON:=$(DEPS_INSTALL_DIR)/python/bin/python3.7m
 		ifeq (, $(shell command -v $(PYTHON)))
 			PYTHON:=python
 		endif
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 09a9a6052d2..8a7792bd886 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -72,7 +72,11 @@ if(WITH_JACK)
 endif()
 
 if(NOT DEFINED LIBDIR)
-  set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
+  if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
+    set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
+  else()
+    set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin_${CMAKE_OSX_ARCHITECTURES})
+  endif()
 else()
   message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
 endif()
diff --git a/build_files/utils/make_update.py b/build_files/utils/make_update.py
index 53f6b3d447f..2b8c7af98fb 100755
--- a/build_files/utils/make_update.py
+++ b/build_files/utils/make_update.py
@@ -8,6 +8,7 @@
 
 import argparse
 import os
+import platform
 import shutil
 import sys
 
@@ -49,7 +50,12 @@ def svn_update(args, release_version):
 
     # Checkout precompiled libraries
     if sys.platform == 'darwin':
-        lib_platform = "darwin"
+        if platform.machine() == 'x86_64':
+            lib_platform = "darwin"
+        elif platform.machine() == 'arm64':
+            lib_platform = "darwin_arm64"
+        else:
+            lib_platform = None
     elif sys.platform == 'win32':
         # Windows checkout is usually handled by bat scripts since python3 to run
         # this script is bundled as part of the precompiled libraries. However it



More information about the Bf-blender-cvs mailing list