direct integration with vcpkg
At my job I've created a python script that uses vcpkg to install a number of upstream dependencies for our projects. I iterated on that to create a pure-CMake tool called EZVCPKG to do the same job. I'm trying to gauge whether it would be useful/desirable to go one step further and add integration directly into CMake.
Although CMake has great support for external projects, in my experience adding any project this way involves quite a bit of boilerplate cmake code and lacks any good mechanism for expressing inter-dependencies between the externals. Additionally, every time you wipe and create a build directory, you have to rebuild your upstream dependencies, and the disk footprint of such externals is multiplied by the number of build directories you have (It's not uncommon for me to have multiple build directories for building and testing different configurations).
The build time cost can be especially punishing on CI systems where the build directory is typically always starting from scratch.
While my script setups serve my goals sufficiently well, I feel like both the CMake and vcpkg ecosystems would be improved by defining a .vcpkg
descriptor file format which could contain the same parameters that are described in my EZVCPKG project linked above. CMake could then be vcpkg-aware and build the required dependencies during the configuration step.
If this would be a reasonable feature for CMake, I'd be willing to put in the work to implement it.