adafruit / circuitpython-build-tools

Build scripts for CircuitPython libraries and the bundle
MIT License
28 stars 18 forks source link

Add circuitpython-mpy-cross command #118

Closed jepler closed 2 months ago

jepler commented 2 months ago

This adds the ability to (download or build, then) invoke any supported version of mpy-cross:

$ circuitpython-mpy-cross --circuitpython-version 8.x -- --version
CircuitPython 8.2.0 on 2023-07-05; mpy-cross emitting mpy v5-CircuitPython
$ circuitpython-mpy-cross --circuitpython-version 9.x -- --version
CircuitPython 9.0.0-alpha.2 on 2023-10-27; mpy-cross emitting mpy v6.1

This also improves how mpy-cross is downloaded or built: These activities happen in the user's "cache" directory (e.g., $HOME/.cache on Linux/Mac, some other folder on Windows)

this also enables sharing the copy of mpy-cross across multiple repos.

Testing performed: with a pip install -e . of this library, just ran a local build of jepler_udecimal: circuitpython-build-bundles --filename_prefix jepler_udecimal --library_location ., as well as testing invocation of mpy-cross above.

The idea of having a download & run wrapper around mpy-cross originates with https://pypi.org/project/mpy-cross-multi/ but re-uses our existing infra for downloading or building mpy-cross as needed, instead of uploading binary artifacts to pypi.

jepler commented 2 months ago

I also checked that the revised build instructions worked by temporarily adding a version called "9.0.x" and building it.

jepler commented 2 months ago

Closing this up as the PR has the wrong branch name [but the right content]