diff --git a/build_files/utils/make_update.py b/build_files/utils/make_update.py index a6fecdce54f..c5e3a5fafe6 100755 --- a/build_files/utils/make_update.py +++ b/build_files/utils/make_update.py @@ -42,6 +42,7 @@ def parse_arguments() -> argparse.Namespace: parser.add_argument("--svn-branch", default=None) parser.add_argument("--git-command", default="git") parser.add_argument("--use-linux-libraries", action="store_true") + parser.add_argument("--architecture", type=str, choices=("x86_64", "arm64",)) return parser.parse_args() @@ -51,6 +52,17 @@ def get_blender_git_root() -> str: # Setup for precompiled libraries and tests from svn. +def get_effective_architecture(args: argparse.Namespace): + if args.architecture: + return args.architecture + + # Check platform.version to detect arm64 with x86_64 python binary. + if "ARM64" in platform.version(): + return "arm64" + + return platform.machine().lower() + + def svn_update(args: argparse.Namespace, release_version: Optional[str]) -> None: svn_non_interactive = [args.svn_command, '--non-interactive'] @@ -58,11 +70,11 @@ def svn_update(args: argparse.Namespace, release_version: Optional[str]) -> None svn_url = make_utils.svn_libraries_base_url(release_version, args.svn_branch) # Checkout precompiled libraries + architecture = get_effective_architecture(args) if sys.platform == 'darwin': - # Check platform.version to detect arm64 with x86_64 python binary. - if platform.machine() == 'arm64' or ('ARM64' in platform.version()): + if architecture == 'arm64': lib_platform = "darwin_arm64" - elif platform.machine() == 'x86_64': + elif architecture == 'x86_64': lib_platform = "darwin" else: lib_platform = None