If you want a fully compatible solution for your arduino project (yes, you can share your project with other people that use just plain Arduino IDE) you need to check amake a tool to simplify the cli of the arduino, I use it with Geany but others are using it with vi, Atom, etc.
It's inspired and the now dead Ino and Arturo projects; please take 5 minutes to test it and please give feedback.
Example use:
cd ~/Arduino/Blink/
[move to your arduino project folder]
amake -v uno Blink.ino
[to compile/verify your code]
amake -u uno Blink.ino /dev/ttyUSB0
[to upload your code to an arduino connected via USB]
It has some smart glue in there, it can remember the board and file, and even autodetect the usb of the board; so after a successfull "amake -v" command you can do this on the command line and it will work.
amake -v
[to compile/verify your code]
amake -u
[to upload your code to an arduino connected via USB]
If you use some IDE macros you can craft the compile and upload commands easily, for example using Geany IDE it will became:
- Compile/Verify: cd %d; amake -v uno %f
- Upload: cd %d; amake -u uno %f
You can get more help running just "amake" or "amake -h" once installed.
Also, it can support EVERY board/lib/programmer you have installed/configured in your Arduino IDE, yes, modern board like the Adafuit Trinket M0 / Arduino M0 etc...
Just fire your Arduino IDE, go to the board manager, install support and that's all, jut follow some simple instructions and your are set.
The board you have is not supported? not a problem, detect the fqbn (read the README.md file) and pass it along as the board name.
I'm looking for testers to grow up the number or board aliases and auto detection of the proper USB signatures.
Remember this is a private grown tool, now shared with the public, you know, just a programmer scratching it's itch...
Cheers.