Firstly, compliments upon today's release, the path improvements are nice!
There's an additional path request that I have, and that is for unit testing: as I do this for a living, I don't do projects that are not TDD led.
My Scenario is this.
I typically have three projects in my Arduino solutions:
- Sketch project
- .h and .cpp project, for the objects I am creating for use in the sketch project
- Unit Testing Project to test the objects being created above
Sketch Includes currently support Arduino libraries, and User Installed Libraries, however libraries that are under construction in adjacent projects in the same solution cannot be accessed in these paths in anything except for full directory notation.
The following works, but is not elegant!
So that my sketches can access the adjacent library that has my .h and .cpp files that are under construction and being Unit Tested in the adjacent Unit Testing project, I have to make the following type of references in my Sketches (BathSpaCentral is the username of this particular machine, yup, welcome to Bath Spa in the UK!):
#include <C:\Users\BathSpaCentral\Documents\Visual Studio 2015\Projects\BitChannel\BitChannel\BitChannel.h>
#include <C:\Users\BathSpaCentral\Documents\Visual Studio 2015\Projects\BitChannel\BitChannel\BitChannel.cpp>
However references like these make my solutions non-distributable to other users, who would have to make their own path modifications instead of being able to use them as cloned from my github repository.
I'd like, at a minimum, to be able to access the paths using relative paths - but indeed, any solution that would enable users to clone my git repository without having to modify path names will be satisfactory ... however at the moment the relative path mechanism seems to use the arduino location as it's root, hence relative paths cannot locate the adjacent libraries in the solution.
If you want an example that you can download to test - it is complete with Unit Testing and has all of these problems but is of commercial standard - here's an arduino quadcopter project that I have on the go.
https://github.com/HarrisonOfTheNorth/BitChannels You'll find a sketch that has this exact path problem in the SticksSketch project, SticksSketch.ino
The proof of the pudding will be the capacity to alter the hard-coded paths to something that will work as given, for any user who clones the solution from a git repo.
I am indeed very hopeful that you can resolve this problem as I hope to build a community of quadcopter boffins around this particular repo, and perhaps others, that I will create.
And by the same token, I would like to be able to clone other people's solutions and be able to run them up without having to modify include paths etcetera!
Unit Testing doesn't seem to be a big thing in the arduino community - perhaps I am wrong, but for IoT to properly break out of it's box, engineers have to be capable of full Test Driven Development, because let's face it, it is the unit tests that professionally indemnify us!
Creating Unit Test projects like this does have it's own unique set of problems, and for example, none of the objects that I create directly include the arduino libraries, because they are way off on the C:\Program Files (x86)\Arduino path ... but that's another problem - the upside of which is that I tend to go for the minimalist library inclusion route, which isn't a bad thing for micro-controllers anyway.
Anything that will help either problem will be helpful, but in particular, the include path problem fopr adjacent libraries in the same solution!
Kind regards,
Anthony