Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht>2021-02-02 00:34:16 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-02-02 14:08:23 +0300
commit886486615b35ee7bc6e48d2a4299f1254939f73b (patch)
treee2df685feea473184a62484c9a05653f3afd5382
parent62419975b78b3d65634ba17b5dccc93491e8ce6d (diff)
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
-rw-r--r--GNUmakefile11
-rw-r--r--build_files/cmake/platform/platform_apple.cmake6
-rwxr-xr-xbuild_files/utils/make_update.py8
3 files changed, 20 insertions, 5 deletions
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