From f390d18ddb8350cc9abfdbbc9fab33c0243ab4b6 Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Thu, 24 Sep 2026 00:58:18 +0000 Subject: [PATCH] Support Windows 11 ARM (#1448) * add Windows on ARM * fix arm * fix runner arch * temporarily remove mozjpeg * debug * capitalize ARM64 * Revert "debug" This reverts commit 696bdb943e91bd9619d60316a999b511e4a28ed3. * Revert "temporarily remove mozjpeg" This reverts commit d431713d730ba77052dfb826112c106a3f5b41e9. * remove print --- .github/workflows/package-windows.yml | 5 +++-- setup.py | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package-windows.yml b/.github/workflows/package-windows.yml index bfab0944..9d56459d 100644 --- a/.github/workflows/package-windows.yml +++ b/.github/workflows/package-windows.yml @@ -26,6 +26,7 @@ jobs: strategy: matrix: entry: [ kcc, kcc-c2e, kcc-c2p ] + os: [ windows-latest, windows-11-arm ] include: - entry: kcc command: build_binary @@ -33,7 +34,7 @@ jobs: command: build_c2e - entry: kcc-c2p command: build_c2p - runs-on: windows-latest + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 - name: Set up Python @@ -55,7 +56,7 @@ jobs: id: upload-unsigned-artifact uses: actions/upload-artifact@v7 with: - name: windows-build-${{ matrix.entry }} + name: windows-build-${{ runner.arch }}-${{ matrix.entry }} path: dist/*.exe - id: optional_step_id uses: signpath/github-action-submit-signing-request@v3.0 diff --git a/setup.py b/setup.py index b07b6fe6..4ab775d1 100644 --- a/setup.py +++ b/setup.py @@ -49,6 +49,8 @@ class BuildBinaryCommand(setuptools.Command): elif sys.platform == 'win32': if os.getenv('WINDOWS_7'): os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_win7_legacy_' + VERSION + ' -w --noupx kcc.py') + elif platform.machine() == 'ARM64': + os.system(f'pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n KCC_{platform.machine()}_' + VERSION + ' -w --noupx kcc.py') else: os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n KCC_' + VERSION + ' -w --noupx kcc.py') sys.exit(0) @@ -80,6 +82,8 @@ class BuildC2ECommand(setuptools.Command): elif sys.platform == 'win32': if os.getenv('WINDOWS_7'): os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2e_win7_legacy_' + VERSION + ' -c --noupx kcc-c2e.py') + elif platform.machine() == 'ARM64': + os.system(f'pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_{platform.machine()}_c2e_' + VERSION + ' -c --noupx kcc-c2e.py') else: os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2e_' + VERSION + ' -c --noupx kcc-c2e.py') sys.exit(0) @@ -112,6 +116,8 @@ class BuildC2PCommand(setuptools.Command): elif sys.platform == 'win32': if os.getenv('WINDOWS_7'): os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2p_win7_legacy_' + VERSION + ' -c --noupx kcc-c2p.py') + elif platform.machine() == 'ARM64': + os.system(f'pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_{platform.machine()}_c2p_' + VERSION + ' -c --noupx kcc-c2p.py') else: os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2p_' + VERSION + ' -c --noupx kcc-c2p.py') sys.exit(0)