My initial idea is to create a Lazarus package, and place all my common units to be shared in there, then have my project have that package as a requirement. Is this how most people share a common set of units with multiple projects? I do not plan on making these units publicly available, they are solely created for this very specific set of projects being developed and compiled on the same machine.
I have also seen some projects, namely the few within the Lazarus source tree basically have multiple LPI and LPR files in the same directory, but with a different set of project files, and some of those projects share some of the same pascal source files. Is this recommended, or can it cause problems with the build process, as there is still a singular lib/ directory being shared between all the projects with the compiled versions of those units.
What does everyone here normally do if they plan on creating a larger codebase with multiple output binaries and/or shared libraries which share a common set of units with required records, classes, and constants for all compiled binaries? Should I just create a shared library at this point? Any suggestions?
There's also a third method I forgot to mention above, in my project options, I can also set a specific file path for -Fu, and perhaps place my common set of units there to keep my overall source directory clean and tidy. Although doing that does make managing those units a bit more difficult, as those unit files are not managed by Lazarus or my project, so editing and rebuilding them will be a bit more tedious and manual...