diff --git a/.github/workflows/multibuild.yml b/.github/workflows/multibuild.yml index 6c12e29..413f822 100644 --- a/.github/workflows/multibuild.yml +++ b/.github/workflows/multibuild.yml @@ -20,6 +20,11 @@ jobs: PLAT: [i686, x86_64] INTERFACE64: ['', '1'] MB_ML_VER: ['', 2010, 2014] + include: + - os: macos-latest + PLAT: arm64 + INTERFACE64: '' + platform: [x64] exclude: - os: macos-latest PLAT: i686 @@ -66,6 +71,10 @@ jobs: pip install virtualenv - name: Build and Install Wheels run: | + if [[ "$PLAT" == "arm64" ]]; then + sudo xcode-select -switch /Applications/Xcode_12.2.app + export SDKROOT=/Applications/Xcode_12.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk + fi source travis-ci/build_steps.sh echo "------ BEFORE BUILD ---------" before_build diff --git a/gfortran-install b/gfortran-install index d430fe6..67e8b69 160000 --- a/gfortran-install +++ b/gfortran-install @@ -1 +1 @@ -Subproject commit d430fe6e38b6c5149c53f775a4437964e2f7b883 +Subproject commit 67e8b6983e9db975e0af82871ee99cd81e37c58b diff --git a/multibuild b/multibuild index 3bd75ee..2bf2b36 160000 --- a/multibuild +++ b/multibuild @@ -1 +1 @@ -Subproject commit 3bd75eee8fa98ee70e29d59f4ec5a15291362cc2 +Subproject commit 2bf2b360f084aaa4b166935c3bd279e2e842f6ff diff --git a/travis-ci/build_steps.sh b/travis-ci/build_steps.sh index 2156573..761370a 100644 --- a/travis-ci/build_steps.sh +++ b/travis-ci/build_steps.sh @@ -7,7 +7,7 @@ ROOT_DIR=$(dirname $(dirname "${BASH_SOURCE[0]}")) source ${ROOT_DIR}/multibuild/common_utils.sh source ${ROOT_DIR}/gfortran-install/gfortran_utils.sh -MB_PYTHON_VERSION=3.7 +MB_PYTHON_VERSION=3.9 function before_build { # Manylinux Python version set in build_lib @@ -44,7 +44,7 @@ function build_lib { # Make directory to store built archive if [ -n "$IS_OSX" ]; then # Do build, add gfortran hash to end of name - do_build_lib "$plat" "gf_${GFORTRAN_SHA:0:7}" "$interface64" + wrap_wheel_builder do_build_lib "$plat" "gf_${GFORTRAN_SHA:0:7}" "$interface64" return fi # Manylinux wrapper @@ -85,24 +85,33 @@ function do_build_lib { local suffix=$2 local interface64=$3 echo "Building with settings: '$plat' '$suffix' '$interface64'" - case $plat in - x86_64) + case $(get_os)-$plat in + Linux-x86_64) local bitness=64 local target_flags="TARGET=PRESCOTT" ;; - i686) + Darwin-x86_64) + local bitness=64 + local target_flags="TARGET=CORE2" + ;; + *-i686) local bitness=32 local target_flags="TARGET=PRESCOTT" ;; - aarch64) + Linux-aarch64) local bitness=64 local target_flags="TARGET=ARMV8" ;; - s390x) + Darwin-arm64) + local bitness=64 + local target_flags="TARGET=VORTEX" + ;; + *-s390x) local bitness=64 ;; - ppc64le) + *-ppc64le) local bitness=64 + local target_flags="TARGET=POWER8" ;; *) echo "Strange plat value $plat"; exit 1 ;; esac