--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.
Recursive is how I suggested long ago as well. Just say'n...
Hi everyone
I'm happy to announce a new tool. We put our brains together, blended,
and called it "arduino-builder"
It's code is available at https://github.com/arduino/arduino-builder
Our bot is preparing a version of the IDE that bundles it: keep an eye
on https://github.com/arduino/Arduino/pull/3779
Now some details
Following Paul's suggestion of using gcc for preprocessing, we came up
with a mix of
- gcc -M for gathering includes
- gcc -E for preprocessing
- ctags for parsing preprocessed code and list missing prototypes
Everything is carefully mixed and linked in a way that should make it
easy to extend and evolve yet maintaining every concern separated. For
instance, ctags is run by a module, its output is parsed by another
Because it introduces a new tool, ctags, and because it must be used by
every single core, we changed how platform.txt works. You can now have
partial definitions in parent folders: those definition will percolate
down to the actual platform.txt
This allows to have a minimal platform.txt defined under "hardware" [1]
and to have its values copied over any actual platform.txt file.
Also, preprocessing involves calling gcc, and every core has its
specific flags.
Again, in order to avoid asking every core developer to modify every
platform.txt file, we used platform.keys.rewrite.txt. We inject
preprocessing recipes [2] and we added a handful of core specific
variables [3]: if these are not defined, they get cleared.
We tested this behaviour compiling a couple of example sketches using
every single core listed at 3rd party cores wiki page [4]
HOWEVER: core developers, please test this tool; if the good-for-all
preprocessing recipe we made is not so good for you, please provide your
own by defining it in your platform.txt.
Last news is about contributing: this is the first Arduino project using
the Developer Certificate of Origin (you may recall an old thread
talking about CLA and DCO)
Hope this will hit 1.6.6. Our plans may change depending on the feedback
we'll receive.
Regards
Federico
[1]
https://github.com/arduino/arduino-builder/blob/master/src/arduino.cc/builder/hardware/platform.txt
[2] note to self: while writing this email I noticed we can now move
"added" keys from platform.keys.rewrite.txt to the minimal platform.txt
described above
[3]
https://github.com/arduino/arduino-builder/blob/master/src/arduino.cc/builder/hardware/platform.keys.rewrite.txt#L25
[4]
https://github.com/arduino/arduino-builder/blob/master/src/arduino.cc/builder/hardware/platform.keys.rewrite.txt#L25
--
Federico
--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.
--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.