diff --git a/.github/workflows/sounddevice-data.yml b/.github/workflows/sounddevice-data.yml index 5bdfaad..4a019e7 100644 --- a/.github/workflows/sounddevice-data.yml +++ b/.github/workflows/sounddevice-data.yml @@ -16,6 +16,8 @@ jobs: arch: 'x86' - os: windows-11-arm arch: 'arm64' + - os: windows-11-arm + arch: 'x64' runs-on: ${{ matrix.os }} steps: - name: Set up Python @@ -25,7 +27,7 @@ jobs: architecture: ${{ matrix.arch }} - name: Double-check Python version run: | - python --version + python --version --version - name: Clone Git repository (with submodules) uses: actions/checkout@v6 with: @@ -36,6 +38,7 @@ jobs: run: | python -m pip install . - name: Import module + shell: bash run: | python -m sounddevice python -c "import sounddevice as sd; print(sd._libname)" @@ -45,6 +48,7 @@ jobs: python -c "import sounddevice as sd; assert not any(a['name'] == 'ASIO' for a in sd.query_hostapis())" - name: Import module (using the ASIO DLL) if: startsWith(matrix.os, 'windows') + shell: bash env: SD_ENABLE_ASIO: 1 run: | diff --git a/setup.py b/setup.py index 46a82fa..5438b11 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,6 @@ import os import platform +import sysconfig from setuptools import setup MACOSX_VERSIONS = '.'.join([ @@ -11,7 +12,8 @@ system = os.environ.get('PYTHON_SOUNDDEVICE_PLATFORM', platform.system()) machine = platform.machine().lower() architecture0 = os.environ.get('PYTHON_SOUNDDEVICE_ARCHITECTURE', - 'arm64' if machine in ['arm64', 'aarch64'] else platform.architecture()[0]) + 'arm64' if 'arm64' in sysconfig.get_platform() or 'aarch64' in sysconfig.get_platform() + else platform.architecture()[0]) if system == 'Darwin': libname = 'libportaudio.dylib' diff --git a/src/sounddevice.py b/src/sounddevice.py index 00fc6f8..a3f213e 100644 --- a/src/sounddevice.py +++ b/src/sounddevice.py @@ -55,6 +55,7 @@ import os as _os import platform as _platform import sys as _sys +import sysconfig as _sysconfig from ctypes.util import find_library as _find_library from _sounddevice import ffi as _ffi @@ -75,7 +76,7 @@ if _platform.system() == 'Darwin': _libname = 'libportaudio.dylib' elif _platform.system() == 'Windows': - if _platform.machine().lower() in ('arm64', 'aarch64'): + if 'arm64' in _sysconfig.get_platform() or 'aarch64' in _sysconfig.get_platform(): _platform_suffix = 'arm64' else: _platform_suffix = _platform.architecture()[0]