From 9e1d538c8b7c12bb0a9fe09cfbc6cdd08d5133fa Mon Sep 17 00:00:00 2001 From: "V. Armando Sole" Date: Fri, 24 Nov 2023 17:06:58 +0100 Subject: [PATCH] Allow to specify the architecture --- build-pyinstaller.py | 11 ++++++ package/pyinstaller/pyinstaller.spec | 51 +++++++++++++++++++--------- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/build-pyinstaller.py b/build-pyinstaller.py index 9c4b2044a..456a08992 100644 --- a/build-pyinstaller.py +++ b/build-pyinstaller.py @@ -7,6 +7,17 @@ os.path.join(".", "build-" + sys.platform), os.path.join(".", "dist-" + sys.platform)) +if sys.platform.startswith("darwin"): + if "arm64" in sys.argv: + os.putenv("PYMCA_PYINSTALLER_TARGET_ARCH", "arm64") + elif "universal2" in sys.argv: + os.putenv("PYMCA_PYINSTALLER_TARGET_ARCH", "universal2") + elif "x86_64" in sys.argv: + os.putenv("PYMCA_PYINSTALLER_TARGET_ARCH", "x86_64") + else: + # let PyInstaller choose according to platform + pass + if sys.platform.startswith("win"): cmd = cmd.replace(";", "&") result = os.system(cmd) diff --git a/package/pyinstaller/pyinstaller.spec b/package/pyinstaller/pyinstaller.spec index 8657b8568..09e3bb0f5 100644 --- a/package/pyinstaller/pyinstaller.spec +++ b/package/pyinstaller/pyinstaller.spec @@ -1,6 +1,6 @@ # -*- mode: python -*- import sys -import os.path +import os from pathlib import Path import shutil import subprocess @@ -155,21 +155,40 @@ for i in range(len(script_a)): script_a[i].zipped_data, cipher=block_cipher)) - script_exe.append( - EXE( - script_pyz[i], - script_a[i].scripts, - script_a[i].dependencies, - [], - exclude_binaries=True, - name=script_n[i], - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=False, - console=True, - icon=icon) - ) + arch = os.getenv("PYMCA_PYINSTALLER_TARGET_ARCH") + if arch: + script_exe.append( + EXE( + script_pyz[i], + script_a[i].scripts, + script_a[i].dependencies, + [], + exclude_binaries=True, + name=script_n[i], + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=False, + console=True, + icon=icon, + target_arch=arch) + ) + else: + script_exe.append( + EXE( + script_pyz[i], + script_a[i].scripts, + script_a[i].dependencies, + [], + exclude_binaries=True, + name=script_n[i], + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=False, + console=True, + icon=icon) + ) script_col.append( COLLECT( script_exe[i],