|
1 | 1 | # ArduinoCore-API
|
| 2 | + |
| 3 | +This repository hosts the hardware independent layer of Arduino core. |
| 4 | + |
| 5 | +All Arduino official cores are being ported to the new structure so they take advantage of this single repo. |
| 6 | + |
| 7 | +Including this repo in your existing Arduino core will allow the language to grow and include new features. |
| 8 | +For backwards compatibility, every revision of this repo will increase `ARDUINO_API_VERSION` define. |
| 9 | + |
| 10 | +Some cores have been ported to the new structure, for example: |
| 11 | +* megaAVR (http://github.com/arduino/ArduinoCore-megaAVR) |
| 12 | +* classic AVR (http://github.com/arduino/ArduinoCore-avr/tree/api) |
| 13 | +* SAMD (http://github.com/arduino/ArduinoCore-samd/tree/api) |
| 14 | + |
| 15 | +These repositories **don't** contain the needed `api` subfolder; to "complete" the core you need to copy or symlink the `api` folder from this repo to the target's `cores/arduino` folder. |
| 16 | + |
| 17 | +### Porting tips |
| 18 | + |
| 19 | +In the future, core apis will be updated independently from the core, so all the compatible cores will seamlessly adopt new features. |
| 20 | +This requires support from all the IDEs, so in the meantime we suggest to release the core by copying a snapshot of this `api` folder. |
| 21 | + |
| 22 | +The most elegant and effective solution is to develop the core with `api` symlinked and produce the distributable archive by telling `tar` to follow symlinks. |
| 23 | +Example command: |
| 24 | +``` |
| 25 | +tar --exclude='*.git*' -cjhvf $yourcore-$version.tar.bz2 $yourcore/ |
| 26 | +``` |
0 commit comments