diff --git a/build_files/utils/make_update.py b/build_files/utils/make_update.py index e093cde34e3..0911bcca4d4 100755 --- a/build_files/utils/make_update.py +++ b/build_files/utils/make_update.py @@ -32,7 +32,16 @@ def parse_arguments(): parser.add_argument("--use-tests", action="store_true") parser.add_argument("--svn-command", default="svn") parser.add_argument("--git-command", default="git") + + # NOTE: Both old and new style command line flags, so that the Buildbot can use the new style. + # It is not possible to know from the Buildbot which style to use when building patches. + # + # Acts as an alias: `use_centos_libraries or use_linux_libraries`. parser.add_argument("--use-centos-libraries", action="store_true") + parser.add_argument("--use-linux-libraries", action="store_true") + + parser.add_argument("--architecture", type=str, choices=("x86_64", "amd64", "arm64",)) + return parser.parse_args() @@ -41,6 +50,16 @@ def get_blender_git_root(): # Setup for precompiled libraries and tests from svn. +def get_effective_architecture(args): + 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, release_version): svn_non_interactive = [args.svn_command, '--non-interactive'] @@ -49,11 +68,12 @@ def svn_update(args, release_version): svn_url = make_utils.svn_libraries_base_url(release_version) # Checkout precompiled libraries + architecture = get_effective_architecture(args) if sys.platform == 'darwin': - if platform.machine() == 'x86_64': - lib_platform = "darwin" - elif platform.machine() == 'arm64': + if architecture == 'arm64': lib_platform = "darwin_arm64" + elif architecture == 'x86_64': + lib_platform = "darwin" else: lib_platform = None elif sys.platform == 'win32': @@ -61,7 +81,7 @@ def svn_update(args, release_version): # this script is bundled as part of the precompiled libraries. However it # is used by the buildbot. lib_platform = "win64_vc15" - elif args.use_centos_libraries: + elif args.use_centos_libraries or args.use_linux_libraries: lib_platform = "linux_centos7_x86_64" else: # No precompiled libraries for Linux.