I have a cmake project that uses vcpkg to manage its dependencies. vcpkg is used in 'manifest mode'. Meaning my dependencies are specified in the vcpkg.json that reside in the project root directory:
{
"name": "myproject",
"version-string": "1.0.0",
"builtin-baseline": "232704deb708fc866905af170b63c1a9cb821dbc",
"dependencies": [
{
"name" : "imgui",
"default-features": true,
"features" : ["docking-experimental"]
},
"magnum",
{
"name" : "magnum-integration",
"default-features": false,
"features" : ["imgui"]
}
]
}
The "builtin-baseline"
field contains the git SHA-1 identifying a commit in my own privately maintained vcpkg repository.
For example, the magnum
dependency is configured to the use latest 'baseline' version. meaning if you go to where vcpkg in installed, there is a file versions/baseline.json where the baseline is determined.
vcpkg has a (complicated and non intuitive) mechanism to pin certain dependencies to older versions. However, I could not find a structured way of how to modify the vcpkg installation so it will install a different version from a git repository. vcpkg "overlay ports" feature does not work in manifest mode.
Ideally, vcpkg would allow me to do something simple, such as:
"magnum",
{
"git-commit" : "dagfaghsfdg",
"name" : "magnum-integration",
"default-features": false,
"features" : ["imgui"]
}
So how can I configure vcpkg to use a certain git commit for a dependency (in manifest mode)?