Support for source files and/or built libraries w/i dependencies #1140
Replies: 2 comments
-
Another point to add onto everything that was said above, I think that Speaking of windows, I saw that #1045 was closed, this is fine, but eventually I think it would be cool to see cabin support linux as well as windows, I don't think it would be too difficult either. Last point is that if dependencies are in fact bundled as modules then the install command would/could download a patch |
Beta Was this translation helpful? Give feedback.
-
Thanks. I don't have enough time to work on this project these days so allow me to answer your questions briefly.
|
Beta Was this translation helpful? Give feedback.
-
First let me preface this discussion by mentioning how much I appreciate the work that has been put into this. CMake is absolutely terrible. Cargo is amazing. Cabin is amazing.
Getting into the meat of the discussion, how difficult would it be to support dependencies that aren't header only?
We could this by labeling each dependency as a
module
(not related to C++20), the main package is also a module.Compilation could then be divided into a three step build process:
The full list of modules, inherited flags, and the list of included dirs and whatnot could be compiled into a
cabin.lock
file just like Cargo.For the past few weeks, I've been making my own meta builder in C++ using Ninja as the backend. I've implemented most of what I described above within this metabuilder. However I found out about this, and I realized that instead of trying to reinvent the wheel, it'd be better to just contribute to an established project. Thus here we are.
But I don't want to dive into
Cabin
just to get my PR rejected, or find out that this idea isn't feasible for whatever reason. But if you (Mr. Matsui) do think this is not a terrible idea, and furthermore something you'd be open to pursuing then I'd love to talk more about it with you.Disclaimer: I've never used Cabin.
Side Question: Since Cabin doesn't build ninja files does it have its own in-house change tracker, ie: a way to know what needs to be built, and not build everything from scratch?
Beta Was this translation helpful? Give feedback.
All reactions