Organize libaries

Hi Im new in PlatformIO,
I have about 30 libraries which I wrote for my own usage. How can I install them locally in PlatformIO to easliy use them in different projects, update etc ?

thanks in advance!

To use own libs globally please place them to ~/.platformio/lib folder. If you donā€™t see this folder, just install some library, for example, pio lib install 1.

thanks, how do You advice to manage all these libraries ?
Should I create one project which include all of them?

I have added my libary to path You specified but still cant see that under lib of project.

~/PlatformIO/Tests/Test1$ pio lib install MemoryVariables
Usage: pio lib install [OPTIONS] [LIBRARY_ID]

Error: Invalid value for ā€œlibidā€: MemoryVariables is not a valid integer
:~/PlatformIO/Tests/Test1$ pio lib install 1
Installing library [ 1 ]:
Downloadingā€¦
Unpackingā€¦
The library #1 ā€˜OneWireā€™ has been successfully installed!

Iā€™m looking for solution where I can easily manage/develop/update these libs

You can keep own libraries in the own location. Then just make the symbolic links to them. For example,

ln -s /path/to/you/testLib ~/.platformio/lib/testLib

Then in sketch use

#include <testLib.h>

where testLib.h is located in /path/to/you/testLib folder. PlatformIO will automatically include your library to the project and build it. See detailed docs about library structures.

thanks - and what about developing these libraries - what do You advice here?
Should I create separate project for each lib or create one project where all sources are attached ?

ps - link to library works its being automatically attached but I cant see that library under project lib

Here are a lot of options. If these libs are not linked and have a different context, then I donā€™t recommend to use ā€œsingle projectā€ for all libs.

PlatformIO has interesting shortcut platformio ci. You can create examples folder for each library and place here different examples. Then test them as pio ci /path/to/lib/examples/myexample/test.cpp --board uno.

Another way is to create PlatformIO Project (pio init) and use these libs in the practice.

This is OK. Projectā€™s lib folder is intended for ā€œprivate/projectā€™s specificā€ libraries. You have asked me before ā€œhow to put all my libs into the global scopeā€. ~/.platformio/lib is global scope.

I like PlatformIO project a lot!

  • thanks for advices
1 Like

Happy Coding with PlatformIO! :wink: