diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 519aed975..0f0678d93 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -41,7 +41,7 @@ jobs: CIBW_SKIP: "{pp*,*-musllinux_*}" # Build only on 64-bit architectures. - CIBW_ARCHS_MACOS: x86_64 + CIBW_ARCHS_MACOS: "x86_64 arm64" CIBW_ARCHS_LINUX: auto64 CIBW_ARCHS_WINDOWS: auto64 diff --git a/.github/workflows/cibuildwheel-before-build.sh b/.github/workflows/cibuildwheel-before-build.sh index 342e66cfd..0e1f49741 100755 --- a/.github/workflows/cibuildwheel-before-build.sh +++ b/.github/workflows/cibuildwheel-before-build.sh @@ -19,11 +19,23 @@ TBB_ZIP="v${TBB_VERSION}.zip" curl -L -O "https://github.com/oneapi-src/oneTBB/archive/refs/tags/${TBB_ZIP}" unzip -q "${TBB_ZIP}" +# +EXTRA_CMAKE_ARGS="" +if [[ "${PLATFORM}" == "macos" ]]; then + if [[ ${ARCHFLAGS} == *"arm64"* ]]; then + EXTRA_CMAKE_ARGS="-DCMAKE_OSX_ARCHITECTURES=arm64" + fi +fi +echo "EXTRA_CMAKE_ARGS=${EXTRA_CMAKE_ARGS}" + +# clean the build to rebuild for arm64 +rm -rf "${PACKAGE_DIR}/tbb" + # Move to a hard-coded path (defined by CIBW_ENVIRONMENT) mv "oneTBB-${TBB_VERSION}" "${PACKAGE_DIR}/tbb" cd "${PACKAGE_DIR}/tbb" mkdir -p build cd build -cmake ../ -DTBB_TEST=OFF -DTBB_STRICT=OFF -cmake --build . -j +cmake ../ -DTBB_TEST=OFF -DTBB_STRICT=OFF -DCMAKE_BUILD_TYPE=Release ${EXTRA_CMAKE_ARGS} +cmake --build . -j -v cmake --install . diff --git a/ChangeLog.md b/ChangeLog.md index 63209a658..a901d84f3 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -8,6 +8,7 @@ and this project adheres to ### Added * `include_input_points` argument to `freud.locality.PeriodicBuffer`. +* `macos-arm64` binary builds on conda-forge and PyPI. ### Changed * `freud.data.UnitCell.generate_system` now generates positions in the same order as the basis positions.