-
Notifications
You must be signed in to change notification settings - Fork 180
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
External software dependencies as git submodules #2584
Comments
@jdtournier @Lestropie if we decide to directly fetch these dependencies ourselves (e.g. using CMake), we obviously wouldn't need to rely on pre-installed system packages (e.g. for |
For JSON & Eigen, not a problem - fully agree it's a good thing to fetch ourselves, whether through git submodules or via CMake. These are both header-only anyway, so it has no impact on anything else. Not so sure about Qt though... But given the way we're moving with the packaging, it might be just as easy to do that for Qt as well. Would be good to have it set up so it can be tweaked by package maintainers (e.g. for Debian/ Ubuntu packages, etc) since they will likely prefer to link against their own distro's system packages. |
For Qt, I think it's best to let the developer provide their own installation. Building Qt 6 from source is not too difficult, but it would just downgrade the dev experience we have now (downloading and installing binaries would also be cumbersome). |
I think this would make sense for compile-time-only dependencies. I also think something like the NIfTI C headers should ideally be pulled into the build directory rather than being embedded in our repo. |
|
Primarily relevant to JSON for Modern C++, but could be used for Eigen also.
Rather than having a complete duplicate of the header contents of an external software project, it would be preferable to instead have a set of software dependencies configured as git submodules, that would be pulled in at configure / build time and appropriately linked against. Incrementing the version of that dependency would then only involve creating a commit that updates the committish for that submodule. And it may be easier for developers of such softwares to track use of their software as submodules than it is to track duplications of their headers / instances of code that requires theirs to compile.
The text was updated successfully, but these errors were encountered: