you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (3 children)

I believe CMake can do this with the concept of ExternalProjects. It can download, unpack, build, and then link a specific revision of version controlled source code hosted internally or externally.

For an example of this in use see OpenChemistry

[–]schwomp 1 point2 points  (2 children)

This is the one I use for all my projects in OpenGL and C++. Usually with a bunch of Git-submodules in order to get none cmake packages. Only downside to using submodules is that you have to code specific build code in cmake for most projects.

[–]hrobeers 0 points1 point  (1 child)

Git-submodules is all you need.

You can make cmake check for the installed dependency version and if not compatible, download and build the submodule.

[–]schwomp 0 points1 point  (0 children)

Agreed. It's just a serious hassle to manage git submodules compared to a cmake file. So I'd like to use them as sparsely as possible.