Currently, I'm working in hardware/teensy/avr/cores. At some point in the future, I might transition to installing into the sketchbook folder. But today, my installer isn't able to reliably detect the sketchbook folder location.
Why is that? The IDE has a location where it stores its preferences.txt config file and the config file has a value that indicates where the sketchbook is located.
If I change the location of my sketchbook storage, the location of the config file does not change.
Currently I have around 20 different versions of the IDE and they are all sharing the same sketchbook area where I store my
libraries, hardware cores, and personal sketches.
It has pluses and minuses but it does allow me to rapidly move between IDEs for testing.
In the case of something like teensy and its libraries, I think installing under the core-vendor-name/architecture/libraries directory makes sense
since it allows the libraries you install to only be used with your core which removes the possibility of breaking somebodies other library.
Whether it exists is also an unresolved issue. That's never a problem for installing into the copy of Arduino (or if it is, they can't get the "Next" button to enable because that copy of Arduino fails the validity checks).
I have no plans to ever divide all the files into 2 architecture locations, like hardware/teensy/avr/cores and hardware/teensy/arm/cores.
I am planning to make my installer put all the libraries it installs into hardware/teensy/avr/libraries. This is the one part of the 1.6's new scheme I really like. I've always worried about breaking libraries for normal Arduino boards.
Fighting the 1.5x/1.6 way of creating a vendor area with separate sub directories for each separate architecture is
already creating some funkiness.
It's intent was to create:
vendor-name/processor-achitecture-name area for placing files related to that combination.
In the current Teensy 1.6 structure. multiple processor architectures are placed under the same processor-architecture area.
This can be made to work, but it comes with some funkiness and potential issues in the future.
For example, the IDE passes down a define indicating the processor architecture.
For Teensy builds you end up with the define -DARDUINO_ARCH_AVR regardless of which actual processor type
is associated with selected board.
This may cause issues for libraries that support multiple processors in that they may get confused if using
that define to determine if an AVR processor is being used.
There also seems to be some diversion as to how some of the values in the boards.txt file for teensy
are used vs how they are used in the Team Arduino boards.txt files.
These types of things may break or confuse the IDE as the IDE gets "smarter" and starts to hide libraries that don't support the processor-architecture
of the selected board type for libraries that use the new 1.6 library format which can specify the supported architectures.
I also noticed that the build rules in the teensy boards.txt is not passing down the board name define
the way the default rules for the Team Arduino cores do.
The default Team Arduino 1.6 platform.txt rules pass down -DARDUINO_{build.board}
and the teensy build rules, which are in the boards file instead, currently don't do this.
--- bill