Handling common project libraries in a Git repository

I would like to set up a folder structure such that I can encapsulate an entire project, spanning multiple sketches that share common libraries, into a single Git repository, and make it portable to all team members who download the git repository. I also sometimes make changes to the libraries themselves, so I'd rather not have to copy & paste fixes across multiple directories.

Picture example: https://i.imgur.com/LDyufEc.png

I've basically come to the conclusion that I can do this one of two ways:

  • Makefile
  • Symlinks

Is there any way I can add library include paths to accomplish this more elegantly?

EDIT: Interestingly, I've found that I can get relative path includes to work, but ONLY if I use a path relative to a "Build system path" (e.g. Documents\Arduino\libraries), and not the current source file path, and only in Visual Studio running the Visual Micro plugin. It doesn't seem to behave the same way in the Arduino IDE.

I suspect if you modify your Original Post and include a mention of GIT in the title you will be more successful.

I don't use GIT.

...R