Repository navigation
Add Android wheels - #289
Conversation
|
Is android well supported in upstream OpenBLAS? |
| fi | ||
| # get_macpython_environment ${MB_PYTHON_VERSION} venv | ||
| python3.9 -m venv venv | ||
| source venv/bin/activate |
There was a problem hiding this comment.
This environment wasn't used anywhere.
| function get_plat_tag { | ||
| # Copied from gfortran-install/gfortran_utils.sh, modified for MB_ML_LIBC | ||
|
|
There was a problem hiding this comment.
When reviewing references to uname and the MB_ML_ variables, I found the output of this function wasn't used anywhere.
There was a problem hiding this comment.
Yeah, there are a lot of loose ends in this repo, the code goes back before cibuildwheel ...
| @@ -1,16 +1,9 @@ | |||
| #!/bin/bash | |||
| # Test that the wheel works with a different python | |||
There was a problem hiding this comment.
I don't think this comment was ever true: the build and test previously both used Python 3.9, and now they're using Python 3.13.
There was a problem hiding this comment.
Once upon a time we built the wheel with 3.9 and tested with 3.11, but the move to 3.13 kind of messed that all up.
| if [ "${PLAT}" == "arm64" ]; then | ||
| # Cannot test |
There was a problem hiding this comment.
I guess this was a leftover from when GitHub Actions didn't have ARM64 runners, because it works fine now.
Yes, and it's been used on Android for many years in apps based on Chaquopy and Kivy. This PR is now ready for review. |
The main purpose of this PR is to allow using scipy-openblas wheels to build NumPy for Android (numpy/numpy#33194).
General comments:
This is the first cross-compiled target in this repository. To support this, anywhere that used
unameto identify the OS has been replaced withMB_ML_LIBC, which is ultimately derived fromCIBUILDWHEEL_BUILD_IDENTIFIER.Since we're no longer necessarily compiling for the build machine,
BUILD_PREFIXhas been changed from/usr/localto a temporary subdirectory ofbuild, also derived fromCIBUILDWHEEL_BUILD_IDENTIFIER.Since the OpenBLAS library can't be loaded on the build machine when cross-compiling, I've changed the
get_pkg_configfunction to read theopenblas_configand version number from the existing .pc file. This approach also works when compiling NumPy (see its PR linked above).Unlike the build script, the test script is run on an emulator, so it can load the library and print its configuration.
./openblas_commit.txt. If I did not update./openblas_commit.txt, I incremented the wheel build number (i.e. 0.3.29.0.0 to 0.3.29.0.1)