All Projects → arduino → Arduino Builder

arduino / Arduino Builder

Licence: gpl-2.0
A command line tool for compiling Arduino sketches

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Arduino Builder

Arduino Cli
Arduino command line tool
Stars: ✭ 3,173 (+660.91%)
Mutual labels:  command-line, arduino
Fcl
FCL (Fileless Command Lines) - Known command lines of fileless malicious executions
Stars: ✭ 409 (-1.92%)
Mutual labels:  command-line
Triage
Interactive command-line GitHub issue & notification triaging tool.
Stars: ✭ 394 (-5.52%)
Mutual labels:  command-line
Boxes
Command line ASCII boxes unlimited!
Stars: ✭ 398 (-4.56%)
Mutual labels:  command-line
Figlet Fonts
my collection of figlet / toilet ascii art fonts
Stars: ✭ 393 (-5.76%)
Mutual labels:  command-line
Gradyhillhousegarduino
Arduino Garden Controller and Data Logger
Stars: ✭ 398 (-4.56%)
Mutual labels:  arduino
Brok
Find broken links in text documents
Stars: ✭ 393 (-5.76%)
Mutual labels:  command-line
Rx5808 Pro Diversity
DIY project to create your own 5.8ghz FPV diversity basestation - based off the rx5808 receiver module. Project includes basic Arduino Nano implementation to advanced custom PCB board and introduction to digital switches 4066 chip.
Stars: ✭ 412 (-1.2%)
Mutual labels:  arduino
Figurine
Print your name in style
Stars: ✭ 408 (-2.16%)
Mutual labels:  command-line
Go Prompt
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.
Stars: ✭ 4,255 (+920.38%)
Mutual labels:  command-line
Lookatme
An interactive, terminal-based markdown presenter
Stars: ✭ 392 (-6%)
Mutual labels:  command-line
Example Sketch For Imu Including Kalman Filter
Software for "Guide to gyro and accelerometer with Arduino including Kalman filtering"
Stars: ✭ 396 (-5.04%)
Mutual labels:  arduino
Esp8266 artnetnode v2
ESP8266 based WiFi ArtNet to DMX, RDM and LED Pixels
Stars: ✭ 400 (-4.08%)
Mutual labels:  arduino
Mri
Quickly scan for CLI flags and arguments
Stars: ✭ 394 (-5.52%)
Mutual labels:  command-line
Php Scoper
🔨 Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs.
Stars: ✭ 409 (-1.92%)
Mutual labels:  command-line
Konch
Configures your Python shell.
Stars: ✭ 393 (-5.76%)
Mutual labels:  command-line
Cocona
Micro-framework for .NET Core console application. Cocona makes it easy and fast to build console applications on .NET Core.
Stars: ✭ 398 (-4.56%)
Mutual labels:  command-line
Args
Toolkit for building command line interfaces
Stars: ✭ 399 (-4.32%)
Mutual labels:  command-line
Mightycore
Arduino hardware package for ATmega1284, ATmega644, ATmega324, ATmega324PB, ATmega164, ATmega32, ATmega16 and ATmega8535
Stars: ✭ 413 (-0.96%)
Mutual labels:  arduino
Sendmidi
Multi-platform command-line tool to send out MIDI messages
Stars: ✭ 411 (-1.44%)
Mutual labels:  command-line

DEPRECATION WARNING: This tool is being phased out in favor of Arduino CLI, we recommend to use Arduino CLI for new projects.

The source code of the builder has been moved in the arduino-cli repository (as a legacy package) where it will be maintained and developed and eventually moved outside the legacy package once properly integrated in the Arduino CLI codebase.

The arduino-builder is now just a wrapper of arduino-cli. We will continue to provide builds of this project for some time to allow a smooth transition period to our users.

Arduino Builder Build Status

A command line tool for compiling Arduino sketches

This tool is able to parse Arduino Hardware specifications, properly run gcc and produce compiled sketches.

An Arduino sketch differs from a standard C program in that it misses a main (provided by the Arduino core), function prototypes are not mandatory, and libraries inclusion is automagic (you just have to #include them). This tool generates function prototypes and gathers library paths, providing gcc with all the needed -I params.

Usage

  • -compile or -dump-prefs or -preprocess: Optional. If omitted, defaults to -compile. -dump-prefs will just print all build preferences used, -compile will use those preferences to run the actual compiler, -preprocess will only print preprocessed code to stdout.

  • -hardware: Mandatory. Folder containing Arduino platforms. An example is the hardware folder shipped with the Arduino IDE, or the packages folder created by Arduino Boards Manager. Can be specified multiple times. If conflicting hardware definitions are specified, the last one wins.

  • -tools: Mandatory. Folder containing Arduino tools (gcc, avrdude...). An example is the hardware/tools folder shipped with the Arduino IDE, or the packages folder created by Arduino Boards Manager. Can be specified multiple times.

  • -libraries: Optional. Folder containing Arduino libraries. An example is the libraries folder shipped with the Arduino IDE. Can be specified multiple times.

  • -fqbn: Mandatory. Fully Qualified Board Name, e.g.: arduino:avr:uno

  • -build-path: Optional. Folder where to save compiled files. If omitted, a folder will be created in the temporary folder specified by your OS.

  • -prefs=key=value: Optional. It allows to override some build properties.

  • -warnings: Optional, can be "none", "default", "more" and "all". Defaults to "none". Used to tell gcc which warning level to use (-W flag).

  • -verbose: Optional, turns on verbose mode.

  • -quiet: Optional, supresses almost every output.

  • -debug-level: Optional, defaults to "5". Used for debugging. Set it to 10 when submitting an issue.

  • -core-api-version: Optional, defaults to "10600". The version of the Arduino IDE which is using this tool.

  • -logger: Optional, can be "human", "humantags" or "machine". Defaults to "human". If "humantags" the messages are qualified with a prefix that indicates their level (info, debug, error). If "machine", messages emitted will be in a format which the Arduino IDE understands and that it uses for I18N.

  • -version: if specified, prints version and exits.

  • -build-options-file: it specifies path to a local build.options.json file (see paragraph below), which allows you to omit specifying params such as -hardware, -tools, -libraries, -fqbn, -pref and -ide-version.

  • -vid-pid: when specified, VID/PID specific build properties are used, if boards supports them.

Final mandatory parameter is the sketch to compile (of course).

What is and how to use build.options.json file

Every time you run this tool, it will create a build.options.json file in build path. It's used to understand if build options (such as hardware folders, fqbn and so on) were changed when compiling the same sketch. If they changed, the whole build path is wiped out. If they didn't change, previous compiled files will be reused if the corresponding source files didn't change as well. You can save this file locally and use it instead of specifying -hardware, -tools, -libraries, -fqbn, -pref and -ide-version.

Using it for continuously verify your libraries or cores

See Doing continuous integration with arduino builder.

Building from source

You need a version of Go >=1.13.0.

The project now uses go.mod for dependecy management, there is no need to go get anything or to set GOPATH env vars. The build is very simple:

$ git clone https://github.com/arduino/arduino-builder.git
$ cd arduino-builder
$ go build
[.....]
$ ./arduino-builder -version
Arduino Builder 1.5.1
Copyright (C) 2015 Arduino LLC and contributors
See https://www.arduino.cc/ and https://github.com/arduino/arduino-builder/graphs/contributors
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Security

If you think you found a vulnerability or other security-related bug in this project, please read our security policy and report the bug to our Security Team 🛡️ Thank you!

e-mail contact: [email protected]

License and Copyright

arduino-builder is licensed under General Public License version 2, as published by the Free Software Foundation. See LICENSE.txt.

Copyright (C) 2017 Arduino AG and contributors

See https://www.arduino.cc/ and https://github.com/arduino/arduino-builder/graphs/contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].