Feature Request: Ultimate Package Manager
Desired feature is an Ultimate Package Manager.
- Provide ability to download, build, and install a C/C++ or other project supported by package manager.
- Where FindWhatevers would be removed from standard CMake install.
- CMake would update with online package registry database.
- Database would utilize ExternalProject_Add and Find.
- This would allow CMake to always be up to date (well as much as that is possible) with 3rd Party package support regardless of what version of CMake is used.
- Provide pkg db local download and update. Installs could ship crusty versions if desired.
- System to provide selection of any version of 3rd party repo supported by say by repo git tag.
Here is the approaches to date
-
Try (CUDA) to support existing libs with CMake's shipped Find support which is fixed to a given installed version of CMake. The go to 3rd party apporach.
-
Alow 3rd party package maintainers to support CMake themselves. The come to CMake approach.
Here is an approach not tried to date
- Provide an ultimate package management system using ExternalProject_Add and find_package where 3rd party package developers work with CMake/Kitware to support package management. The come together approach - [cue The Beatles here].
Have 3rd party package devs and CMake/Kitware desgin a ultimate package manager that can download build and intall any C/C++, c#, whatever ok even Fortran or COBOL if that's your bag.
Have a 3rd party package registry contatiing git/svn/cvs/hg/zip/tar URIs and version info database allowing user to select in CMake gui the packages and versions to be downloaded built and installed for release/debug/profiling
If stuck using a certain version of CMake the package manager could certainly update itself with the online package database. This way even prior (say prior DCMTK 3.6.1_20140617) versions could be fixed as any given version of CMake could pull and update of the package registry.
Certainly I cannot be the only one rolling my own. Internally it is called:
Super-E-Duper-Builder (SEDB)
and it downloads, builds, and installs any version of boost, CImg, DCMTK, VTK, ITK, VMTK (SuperBuild of SuperBuild), GLM, ZLIB, Wrangler (ok only one ver of wrangler), and some others. Some support CMake others no.