44 lines
1.7 KiB
Bash
Executable File
44 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -x
|
|
|
|
# OpenMP is not present on macOS by default
|
|
if [[ "$RUNNER_OS" == "macOS" ]]; then
|
|
# Make sure to use a libomp version binary compatible with the oldest
|
|
# supported version of the macos SDK as libomp will be vendored into the
|
|
# scikit-learn wheels for macos.
|
|
|
|
if [[ "$CIBW_BUILD" == *-macosx_arm64 ]]; then
|
|
# arm64 builds must cross compile because CI is on x64
|
|
export PYTHON_CROSSENV=1
|
|
# SciPy requires 12.0 on arm to prevent kernel panics
|
|
# https://github.com/scipy/scipy/issues/14688
|
|
# We use the same deployment target to match SciPy.
|
|
export MACOSX_DEPLOYMENT_TARGET=12.0
|
|
OPENMP_URL="https://anaconda.org/conda-forge/llvm-openmp/11.1.0/download/osx-arm64/llvm-openmp-11.1.0-hf3c4609_1.tar.bz2"
|
|
else
|
|
# Currently, the oldest supported macos version is: High Sierra / 10.13.
|
|
# Note that Darwin_17 == High Sierra / 10.13.
|
|
export MACOSX_DEPLOYMENT_TARGET=10.13
|
|
OPENMP_URL="https://anaconda.org/conda-forge/llvm-openmp/11.1.0/download/osx-64/llvm-openmp-11.1.0-hda6cdc1_1.tar.bz2"
|
|
fi
|
|
|
|
sudo conda create -n build $OPENMP_URL
|
|
PREFIX="/usr/local/miniconda/envs/build"
|
|
|
|
export CC=/usr/bin/clang
|
|
export CXX=/usr/bin/clang++
|
|
export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp"
|
|
export CFLAGS="$CFLAGS -I$PREFIX/include"
|
|
export CXXFLAGS="$CXXFLAGS -I$PREFIX/include"
|
|
export LDFLAGS="$LDFLAGS -Wl,-rpath,$PREFIX/lib -L$PREFIX/lib -lomp"
|
|
fi
|
|
|
|
# The version of the built dependencies are specified
|
|
# in the pyproject.toml file, while the tests are run
|
|
# against the most recent version of the dependencies
|
|
|
|
python -m pip install cibuildwheel
|
|
python -m cibuildwheel --output-dir wheelhouse
|