🎉 Arduino CLI Wrapper for CMake
Arduino Cmake toolchain leveraging arduino-cli via python wrapper script. It does not intend to replace the arduino-cli tool, nor is it intended to be a full featured IDE-like solution.
This project seeks to programmatically scrape up the necessary parts of the compile and link calls from the arduino-cli tool, set CMake variables, and allow a CMake project to roughly emulate the Arduino compile process.
The goal is to make it possible to leverge the Arduino libraries in a CMake-bound framework, for Arduino supported targets. If you just want to compile a normal Arduino project from the command line, skip this project and CMake altogether and just use the arduino-cli as intended.
On the other hand, if you are trying to use a CMake-bound project as the primary development process, you need a way to extract the working compile process from the Arduino IDE and reformat it into a CMake Toolchain.
E.g.: To compile an F Prime project for an Arduino target using Arduino libraries, you need a shim like this to avoid hard dependence on the exact version or Arduino, Arduino Core, and the specific versions of installed libraries.
🚀 Installation
Most typically, the cmake tooling is included as a git submodule in your project, or it is included as an external project dependency. If you want to install the python wrapper directly, it can be done like this:
pip install arduino-cli-cmake-wrapper
You can also install the in-development version with:
pip install https://github.com/SterlingPeet/arduino-cli-cmake-wrapper/archive/main.zip
📝 Documentation
During initial development, documentation is sparse. It should be set up on readthedocs when the project is mature.
🤝 Contributing and Development
If you are working on developing the software, head on over to the Developer Notes page for orientation and quick reference. You can also take a look at the Contributing Guide.
🌎 Similar Projects
This project was not created in a vacuum. Here is a list of projects that came before this one and why they are different or not appropriate.
Arduino CMake: Original project to compile for Arduino in CMake, abandoned circa 2014
Arduino-CMake NG: Next Generation Arduino CMake tool, abandoned circa 2018, officially abandoned in 2020
Arduino CMake Toolchain: Named successor to NG, Abandoned almost immediately thereafter, circa 2020
Arduino AVR CMake: AVR-only CMake toolchain with support for VScode, intended as a template as explained on the Arduino forum
Changelog
v0.0.0 (2022-11-09)
🎉 Other
🎉 Initial Commit. [Sterling Peet]
Metadata
Release files for arduino-cli-cmake-wrapper 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl |
Release files / arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl
| Download URL | arduino_cli_cmake_wrapper-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fc3f9c7057d108586ff449b9373e196f5ccb630d259d0ba1e4e9fc1539c889e
|
|
BLAKE2b-256 checksum How to use checksums |
ab520604ded7d7637cea4dccb877288ded896c5e6697e7c8d9c5dde766bfbd5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.12
|
Security for arduino-cli-cmake-wrapper 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.