Skip to content
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

Open
Lestropie opened this issue Feb 8, 2023 · 5 comments
Open

External software dependencies as git submodules #2584

Lestropie opened this issue Feb 8, 2023 · 5 comments

Comments

@Lestropie
Copy link
Member

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.

@daljit46
Copy link
Member

daljit46 commented Mar 8, 2024

Primarily relevant to JSON for Modern C++, but could be used for Eigen also.

@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 eigen). In my opinion, this is a good thing, but what do you think?

@jdtournier
Copy link
Member

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.

@daljit46
Copy link
Member

daljit46 commented Mar 8, 2024

Not so sure about Qt though...

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).

@Lestropie
Copy link
Member Author

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.

@Lestropie
Copy link
Member Author

core/half.hpp also belongs in this list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants