I’m trying to use PIO in a certain way with my own library:
- it’s registered on the site, with a released version
- I have a newer development version on my disk
- my project should use the newer version
- the same project should use the released version when built by others
file:///... path, and the
PLATFORMIO_LIB_EXTRA_DIRS env var. All of them fail to load my latest local version (the project includes a header which is not in the release, and fails).
There is another complication: I’ve added an example in the library, which includes the library. My approach has been to include a symlink to
../../.. in the examples
lib/ folder. It works, but when the LDF now tries to load my local version, it enters infinite recursion, leading to a huge nested lib tree in
.piolibdeps/, even when excluding the
examples/ folder in
library.json in my local copy.
It looks like this is completely the wrong way to do it, but I can’t figure it out - how to I set up the following:
- a library with examples, not just source files, but also complete ones, i.e. projects with
platformio.ini in them, which use this “parent” library
- it has a released version, available through the PIO registry
- for development, my local copy is ahead of the release
- on my system, a project using this library should grab the local version
- it needs to see file changes, i.e. rebuild when a file in the library has been modified
- and lastly, it should also on my setup work when off-line, i.e. without internet connection
I’m running on macOS, mostly using the command line, sometimes the Atom IDE. Any tips and pointers would be appreciated - it feels like the above scenarios should not be such a struggle, right?