arduino-builder - compiles Arduino sketches
arduino-builder mandatory-arguments [options]
sketch
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.
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.
- -hardware
folder
- 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
folder
- 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.
- -fqbn
name
- Fully Qualified Board Name, e.g.: arduino:avr:uno.
- -compile |
-dump-prefs | -preprocess
- 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.
- -libraries
folder
- folder containing Arduino libraries. An example is the 'libraries'
folder shipped with the Arduino IDE. Can be specified multiple times.
- -build-path
folder
- folder where to save compiled files. If omitted, a folder will be
created in the temporary folder specified by your OS.
- -prefs=key=value
- It allows you to override some build properties.
- -warnings
- Can be "none", "default", "more" and
"all". Defaults to "none". Used to tell gcc which
warning level to use (-W flag).
- -verbose
- Turns on verbose mode.
- -quiet
- Suppresses almost every output.
- -debug-level
- Ddefaults to "5". Used for debugging. Set it to 10 when
submitting an issue.
- -core-api-version
- Defaults to "10600". The version of the Arduino IDE which is
using this tool.
- -logger
- 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
path
- path to a local build.options.json file, 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.