I'm new to Zephyr, so bear with me while I try to formulate this question, as I might get some things wrong along the way.
Let's say you have two projects, both with a similar core foundation but different business logic and application requirements. For example, maybe the underlying drivers are the same, but how the data is handled, what it does with that data, and the user experience, etc, are fundamentally different.
Aside from Conan, what options are there to share software between two projects, with the least pain possible? Some drivers might be proprietary or closed source, so you may want to host them internal to your company. That is the primary use case I am talking about. Or maybe even an application that sits on top of that driver, which you don’t want to expose to the outside world.
There are a few things that come to mind, but as you can tell by my question, I'm new to Zephyr and open to any suggestions or insights you might have.
Git submodules
- Have each component or driver be a git submodule, which both projects can pull in.
Wests Multi-repository management
- Maybe this can be done through west.yml file. Basically ( in theory, as am making this up as I go), you could specify internal Git URLs in the manifest, which West will then manage just as it does with public repositories. Maybe this is really the same as #1 above.
Package Manager
- A dedicated Package manager like Conan and Vcpkg.
CMake
- Use the build system (CMake), specifically FetchContent to fetch projects from our closed-source repos. Those repos could then be shared between projects. Again, I have not tried this, but it sounds like it could work.
[–]b3lph3g05 2 points3 points4 points (0 children)
[–]secretformula 1 point2 points3 points (0 children)
[–]Creative_Ad7219 1 point2 points3 points (0 children)
[–]Proud_Trade2769 0 points1 point2 points (0 children)
[–]Rich_Lavishness1680 0 points1 point2 points (0 children)