59
59
echo github.ref ${{ github.ref }}
60
60
61
61
build_wheels :
62
- name : Build wheel for ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} ${{ matrix.buildplat[2] }}
62
+ name : Wheel, ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
63
+ ${{ matrix.buildplat[2] }} ${{ matrix.buildplat[3] }}
64
+ ${{ matrix.buildplat[4] }}
63
65
needs : get_commit_message
64
66
if : >-
65
67
contains(needs.get_commit_message.outputs.message, '1') ||
@@ -77,11 +79,13 @@ jobs:
77
79
# should also be able to do multi-archs on a single entry, e.g.
78
80
# [windows-2019, win*, "AMD64 x86"]. However, those two require a different compiler setup
79
81
# so easier to separate out here.
80
- - [ubuntu-22.04, manylinux, x86_64]
81
- - [ubuntu-22.04, musllinux, x86_64]
82
- - [macos-11, macosx, x86_64]
83
- - [macos-14, macosx, arm64]
84
- - [windows-2019, win, AMD64]
82
+ - [ubuntu-22.04, manylinux, x86_64, "", ""]
83
+ - [ubuntu-22.04, musllinux, x86_64, "", ""]
84
+ - [macos-12, macosx, x86_64, openblas, "10.9"]
85
+ - [macos-13, macosx, x86_64, accelerate, "14.0"]
86
+ - [macos-14, macosx, arm64, openblas, "12.0"]
87
+ - [macos-14, macosx, arm64, accelerate, "14.0"]
88
+ - [windows-2019, win, AMD64, "", ""]
85
89
86
90
python : [["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"]]
87
91
# python[0] is used to specify the python versions made by cibuildwheel
@@ -112,63 +116,53 @@ jobs:
112
116
if : ${{ runner.os == 'Windows' && env.IS_32_BIT == 'false' }}
113
117
114
118
- name : Setup macOS
115
- if : matrix.buildplat[0] == 'macos-11' || matrix.buildplat[0] == 'macos-14'
119
+ if : startsWith( matrix.buildplat[0], 'macos-' )
116
120
run : |
117
- if [[ ${{ matrix.buildplat[2] }} == 'arm64' ]]; then
118
- # macosx_arm64
119
-
120
- # use homebrew gfortran
121
- sudo xcode-select -s /Applications/Xcode_15.2.app
122
- # for some reason gfortran is not on the path
123
- GFORTRAN_LOC=$(brew --prefix gfortran)/bin/gfortran
124
- ln -s $GFORTRAN_LOC gfortran
121
+ if [[ ${{ matrix.buildplat[3] }} == 'accelerate' ]]; then
122
+ echo CIBW_CONFIG_SETTINGS=\"setup-args=-Dblas=accelerate\" >> "$GITHUB_ENV"
123
+ # Always use preinstalled gfortran for Accelerate builds
124
+ ln -s $(which gfortran-13) gfortran
125
125
export PATH=$PWD:$PATH
126
126
echo "PATH=$PATH" >> "$GITHUB_ENV"
127
-
128
- # location of the gfortran's libraries
129
- GFORTRAN_LIB=$(dirname `gfortran --print-file-name libgfortran.dylib`)
130
-
131
- CIBW="MACOSX_DEPLOYMENT_TARGET=12.0\
132
- MACOS_DEPLOYMENT_TARGET=12.0\
133
- LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH\
134
- _PYTHON_HOST_PLATFORM=macosx-12.0-arm64\
135
- PIP_PRE=1\
136
- PIP_NO_BUILD_ISOLATION=false\
137
- PKG_CONFIG_PATH=/opt/arm64-builds/lib/pkgconfig\
138
- PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
139
- echo "CIBW_ENVIRONMENT_MACOS=$CIBW" >> "$GITHUB_ENV"
140
-
141
- CIBW="sudo xcode-select -s /Applications/Xcode_15.2.app"
142
- echo "CIBW_BEFORE_ALL=$CIBW" >> $GITHUB_ENV
143
-
144
- echo "REPAIR_PATH=/opt/arm64-builds/lib" >> "$GITHUB_ENV"
145
-
146
- CIBW="DYLD_LIBRARY_PATH=$GFORTRAN_LIB:/opt/arm64-builds/lib delocate-listdeps {wheel} &&\
147
- DYLD_LIBRARY_PATH=$GFORTRAN_LIB:/opt/arm64-builds/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}"
148
- echo "CIBW_REPAIR_WHEEL_COMMAND_MACOS=$CIBW" >> "$GITHUB_ENV"
149
-
127
+ LIB_PATH=$(dirname $(gfortran --print-file-name libgfortran.dylib))
128
+ fi
129
+ # Add libraries installed by cibw_before_build_macos.sh to path
130
+ if [[ ${{ matrix.buildplat[2] }} == 'arm64' ]]; then
131
+ LIB_PATH=$LIB_PATH:/opt/arm64-builds/lib
132
+ else
133
+ LIB_PATH=$LIB_PATH:/usr/local/lib
134
+ fi
135
+ if [[ ${{ matrix.buildplat[4] }} == '10.9' ]]; then
136
+ # Newest version of Xcode that supports macOS 10.9
137
+ XCODE_VER='13.4.1'
150
138
else
151
- # macosx_x86_64 with OpenBLAS
152
- # setting SDKROOT necessary when using the gfortran compiler
153
- # installed in cibw_before_build_macos.sh
154
- # MACOS_DEPLOYMENT_TARGET is set because of
155
- # https://github.com/mesonbuild/meson-python/pull/309. Once
156
- # an update is released, then that environment variable can
157
- # be removed.
158
- CIBW="MACOSX_DEPLOYMENT_TARGET=10.9\
159
- MACOS_DEPLOYMENT_TARGET=10.9\
160
- SDKROOT=/Applications/Xcode_11.7.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk\
161
- LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH\
162
- _PYTHON_HOST_PLATFORM=macosx-10.9-x86_64\
163
- PIP_PRE=1\
164
- PIP_NO_BUILD_ISOLATION=false\
165
- PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
166
- echo "CIBW_ENVIRONMENT_MACOS=$CIBW" >> "$GITHUB_ENV"
167
-
168
- CIBW="DYLD_LIBRARY_PATH=/usr/local/lib delocate-listdeps {wheel} &&\
169
- DYLD_LIBRARY_PATH=/usr/local/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}"
170
- echo "CIBW_REPAIR_WHEEL_COMMAND_MACOS=$CIBW" >> "$GITHUB_ENV"
139
+ XCODE_VER='15.2'
140
+ fi
141
+ CIBW="sudo xcode-select -s /Applications/Xcode_${XCODE_VER}.app"
142
+ echo "CIBW_BEFORE_ALL=$CIBW" >> $GITHUB_ENV
143
+ # setting SDKROOT necessary when using the gfortran compiler
144
+ # installed in cibw_before_build_macos.sh
145
+ sudo xcode-select -s /Applications/Xcode_${XCODE_VER}.app
146
+ CIBW="MACOSX_DEPLOYMENT_TARGET=${{ matrix.buildplat[4] }}\
147
+ LD_LIBRARY_PATH=$LIB_PATH:$LD_LIBRARY_PATH\
148
+ SDKROOT=$(xcrun --sdk macosx --show-sdk-path)\
149
+ PIP_PRE=1\
150
+ PIP_NO_BUILD_ISOLATION=false\
151
+ PKG_CONFIG_PATH=$LIB_PATH/pkgconfig\
152
+ PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
153
+ echo "CIBW_ENVIRONMENT_MACOS=$CIBW" >> "$GITHUB_ENV"
154
+
155
+ echo "REPAIR_PATH=$LIB_PATH" >> "$GITHUB_ENV"
156
+ GFORTRAN_LIB="\$(dirname \$(gfortran --print-file-name libgfortran.dylib))"
157
+ CIBW="DYLD_LIBRARY_PATH=$GFORTRAN_LIB:$LIB_PATH delocate-listdeps {wheel} &&\
158
+ DYLD_LIBRARY_PATH=$GFORTRAN_LIB:$LIB_PATH delocate-wheel --require-archs \
159
+ {delocate_archs} -w {dest_dir} {wheel}"
160
+ # Rename x86 Accelerate wheel to test on macOS 13 runner
161
+ if [[ ${{ matrix.buildplat[0] }} == 'macos-13' && ${{ matrix.buildplat[4] }} == '14.0' ]]; then
162
+ CIBW+=" && mv {dest_dir}/\$(basename {wheel}) \
163
+ {dest_dir}/\$(echo \$(basename {wheel}) | sed 's/14_0/13_0/')"
171
164
fi
165
+ echo "CIBW_REPAIR_WHEEL_COMMAND_MACOS=$CIBW" >> "$GITHUB_ENV"
172
166
173
167
- name : Build wheels
174
168
@@ -195,10 +189,18 @@ jobs:
195
189
PIP_EXTRA_INDEX_URL=https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
196
190
PIP_NO_BUILD_ISOLATION=false
197
191
192
+ - name : Rename after test (macOS x86 Accelerate only)
193
+ # Rename x86 Accelerate wheel back so it targets macOS >= 14
194
+ if : matrix.buildplat[0] == 'macos-13' && matrix.buildplat[4] == '14.0'
195
+ run : |
196
+ mv ./wheelhouse/*.whl $(find ./wheelhouse -type f -name '*.whl' | sed 's/13_0/14_0/')
197
+
198
198
- uses : actions/upload-artifact@v4
199
199
with :
200
200
path : ./wheelhouse/*.whl
201
- name : ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}-${{ matrix.buildplat[2] }}
201
+ name : ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }}
202
+ ${{ matrix.buildplat[2] }} ${{ matrix.buildplat[3] }}
203
+ ${{ matrix.buildplat[4] }}
202
204
203
205
- uses : conda-incubator/setup-miniconda@v3
204
206
with :
@@ -209,6 +211,7 @@ jobs:
209
211
# build and test the wheel
210
212
auto-update-conda : true
211
213
python-version : " 3.10"
214
+ miniconda-version : " latest"
212
215
213
216
- name : Upload wheels
214
217
if : success()
0 commit comments