Как создатель PlatformIO я бы порекомендовал вам изучить его. Это кроссплатформенный компоновщик кода и отсутствующий менеджер библиотек. Он может создавать один и тот же код для многих популярных платформ и плат встраиваемых систем.
PlatformIO может быть интегрирован со многими популярными системами непрерывной интеграции (CI) (или с вашими собственными). Смотрите документацию с примерами .
Давайте рассмотрим .travis.yml
конфиг / шаблон для Travis CI:
language: python
python:
- "2.7"
env:
- PLATFORMIO_CI_SRC=path/to/source/file.c
- PLATFORMIO_CI_SRC=path/to/source/file.ino
- PLATFORMIO_CI_SRC=path/to/source/directory
install:
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
script:
- platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
пример
Интеграция для USB_Host_Shield_2.0
проекта. .travis.yml
Файл конфигурации:
language: python
python:
- "2.7"
env:
- PLATFORMIO_CI_SRC=examples/acm/acm_terminal
- PLATFORMIO_CI_SRC=examples/Bluetooth/WiiIRCamera PLATFORMIO_BUILD_FLAGS="-DWIICAMERA"
- PLATFORMIO_CI_SRC=examples/ftdi/USBFTDILoopback
- PLATFORMIO_CI_SRC=examples/Xbox/XBOXUSB
# - ...
install:
- python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
# Libraries from PlatformIO Library Registry
# http://platformio.org/#!/lib/show/416/TinyGPS
# http://platformio.org/#!/lib/show/417/SPI4Teensy3
- platformio lib install 416 417
script:
- platformio ci --board=uno --board=teensy31 --board=due --lib="."
avr-size
?