As the creator of PlatformIO I would recommend you to look into PlatformIO,it. It's a cross-platform code builder and the missing library manager. It can build the same code for the famousmany popular embedded development platforms and the most popular embedded boards.
PlatformIO can be be integrated with themany popular Continuous Integration (CI) systems (or your own). See documentation with examples.
Let's look into .travis.yml config/template for 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
Example
Integration for USB_Host_Shield_2.0 project. The .travis.yml configuration file:
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="."
- Configuration file: https://github.com/felis/USB_Host_Shield_2.0/blob/master/.travis.yml
- Build History: https://travis-ci.org/felis/USB_Host_Shield_2.0