-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CPM on monorepos #535
Comments
If I understand correctly, your plan is to replace |
Hi @TheLartians I am in a similar situation, in which I would like to create a mono-repository that contains multiple packages (projects), each having own dependencies and inter-dependencies. The standalone example does show how the I'm sorry if this is getting a bit strange to read... I'm trying to create a structure as shown below:
In such an example, each project should be able to be "installable" on its own. However, each project might have inter-dependencies, e.g. Would it be possible for you (or anyone that knows how), to create a minimalistic example of such a project structure, using CPM to manage dependencies? |
CPM's ability to fetch dependencies from Github is cool, and something I will eventually get to. I also like there's no need for 61 million helper files like conan or vpkg.
However, in the present case I have a large mono repository ~25 million lines of C/C+ code. This repository has ~250 libraries all inside the repo. As such there is no need to fetch from Github. The libraries are organized with a canonical layout that makes it easy to scan and discover.
Here's what I want to do:
Desired impact:
Now this will require a CPMAddPackage to understand a dependency is not in github, but rather it's in a directory tree.
Once I have that I can move individual libraries into their own Git repo and revert to CPMAddPackage with Githib urls.
Feasible? My guess: this is not a good use-case since CMake does this out of the box.
Rather once libraries are migrated to standalone Git repos then CPM is well suited.
Meanwhile I'll read your https://gitlab.com/external-packages/cpm.cmake carefully.
Regards!
The text was updated successfully, but these errors were encountered: