Metadata-Version: 2.1
Name: arduino-cli-cmake-wrapper
Version: 0.1.0
Summary: Arduino Cmake toolchain leveraging ``arduino-cli`` via python wrapper script
Home-page: https://github.com/SterlingPeet/arduino-cli-cmake-wrapper
Author: Sterling Lewis Peet
Author-email: sterling.peet@ae.gatech.edu
License: Apache-2.0
Project-URL: Documentation, https://arduino-cli-cmake-wrapper.readthedocs.io/
Project-URL: Changelog, https://arduino-cli-cmake-wrapper.readthedocs.io/en/latest/changelog.html
Project-URL: Issue Tracker, https://github.com/SterlingPeet/arduino-cli-cmake-wrapper/issues
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Python: >=3.7
License-File: LICENSE
License-File: AUTHORS.rst

================================
🎉 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.

https://arduino-cli-cmake-wrapper.readthedocs.io/


🤝 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 <https://github.com/arduino-cmake/Arduino-CMake-NG/issues/100>`_
#. `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 <https://forum.arduino.cc/t/cmake-with-arduino/897587/5>`_

.. _`F Prime`: https://github.com/nasa/fprime
.. _Developer Notes: https://github.com/SterlingPeet/arduino-cli-cmake-wrapper/blob/main/DEVELOPER_NOTES.rst
.. _Contributing Guide: https://github.com/SterlingPeet/arduino-cli-cmake-wrapper/blob/main/CONTRIBUTING.rst
.. _`Arduino CMake`: https://github.com/queezythegreat/arduino-cmake
.. _`Arduino-CMake NG`: https://github.com/arduino-cmake/Arduino-CMake-NG
.. _`Arduino CMake Toolchain`: https://github.com/a9183756-gh/Arduino-CMake-Toolchain
.. _`Arduino AVR CMake`: https://github.com/tttapa/Arduino-AVR-CMake

Changelog
=========


v0.0.0 (2022-11-09)
-------------------

🎉 Other
~~~~~~~~
- 🎉 Initial Commit. [Sterling Peet]


