From 857f1ef8b2592fbfcff74c52b5911f8172829641 Mon Sep 17 00:00:00 2001 From: Sveinung Rundhovde Date: Tue, 3 Oct 2023 15:08:15 +0200 Subject: [PATCH] Build wheels for Apple arm64 architecture --- .github/workflows/build.yaml | 3 +++ .github/workflows/wheels.yaml | 7 ++++++- python/pyproject.toml | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3cc1fbc8..27408f22 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -23,6 +23,9 @@ jobs: analyzers: "cppcheck" scan: "scan-build --status-bugs" mkdoc: "-DBUILD_DOC=ON -DSPHINX_ARGS=-WT" + - os: macos-13-xlarge + privledges: "sudo" + arch: arm64 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/wheels.yaml b/.github/workflows/wheels.yaml index 30d6bb33..ab1f04a9 100644 --- a/.github/workflows/wheels.yaml +++ b/.github/workflows/wheels.yaml @@ -25,6 +25,8 @@ jobs: arch: i686 - os: macOS-10.15 arch: x86_64 + - os: macos-13-xlarge + arch: arm64 steps: - uses: actions/checkout@v2 @@ -36,6 +38,9 @@ jobs: if: ${{ matrix.arch == 'aarch64' }} name: Set up QEMU + - if: ${{ matrix.os == 'ubuntu-20.04' }} + run: apt install gcc + - name: Install cibuildwheel run: python -m pip install cibuildwheel @@ -44,7 +49,7 @@ jobs: CIBW_ENVIRONMENT_WINDOWS: > CMAKE_GENERATOR="${{ matrix.cmake_generator }}" CMAKE_GENERATOR_PLATFORM="${{ matrix.cmake_generator_platform }}" - CIBW_SKIP: pp* *-musllinux_* + CIBW_SKIP: pp* *-musllinux_* cp312-* CIBW_ARCHS: ${{ matrix.arch }} run: | python -m cibuildwheel --output-dir wheelhouse python/ diff --git a/python/pyproject.toml b/python/pyproject.toml index 1f1f5c1a..c11f1aee 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -62,4 +62,21 @@ select = "cp311*" manylinux-x86_64-image = "manylinux2014" [tool.cibuildwheel.macos] +before-build = [ + """sudo cmake \ + -S . \ + -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DBUILD_TESTING=OFF \ + -DBUILD_PYTHON=OFF \ + -DBUILD_BIN=OFF \ + """, + """sudo cmake \ + --build build \ + --parallel \ + --target install \ + --config Release \ + """, +] environment = { CXXFLAGS="-L/usr/local/lib" }