-
Notifications
You must be signed in to change notification settings - Fork 31
Support vcpkg dependencies #137
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
Conversation
|
This would overwrite bemanproject/infra#7 . We should close that one when this PR opens. I have tried to implement CI testing for vcpkg, I can take on the CI part once I have some time. I remember there was a roadblock, I need to investigate that. |
|
I guess you want the registry here on the project? So you can have a project with a dummy example: {
"default-registry": {
"kind": "builtin",
"baseline": "5e5d0e1cd7785623065e77eff011afdeec1a3574"
},
"registries": [
{
"kind": "git",
"baseline": "e9273e2613b55f3fef3d0cf57a4e98d60aa72b02",
"repository": "https://github.com/bemanproject/vcpkg-ports",
"packages": [ "task", "net", "execution" ]
}
]
}and adding / using packages just works. This way, the Bemanproject can have 100% control over its packages without waiting for merges of vcpkg official. And adding / updating something to the ports could be done in CI, when packages get a tag |
|
Nice suggestion! I linked the suggestion from bemanproject/infra#135, which is tracking the work to fully package this repo for vcpkg (PRs welcome!). I would like the scope for this PR to be actually pretty limited. I want a user to be able to build this project from the vcpkg registry. I think this is basically all we need, other than the CI enhancements that @wusatosi mentioned. |
692f992 to
310a0f6
Compare
|
@bretbrownjr can I commit directly on the PR for CI related changes? |
|
That's fine with me, yes. |
|
Should we close given that @wusatosi is going to handle on a different PR? |
|
It could land separately. It's technically a different feature to get gtest from vcpkg compared to listing exemplar as available through vcpkg. This PR is feature complete for what it aims to do. The main missing feature is a CI enhancement to ensure the feature continues to be supported. And, of course, any documentation enhancements that might be in order. Reviews on that point specifically are appreciated right away. |
|
@wusatosi is there any CI change we could move to this PR to unblock it? |
A setup would work. |
|
@wusatosi I lost track of this one. It looks like GitHub Actions are happy. Should we rebase and merge? |
310a0f6 to
328cb71
Compare
We have not added CI infrastructure to test for vcpkg :| |
* Add a `vcpkg.json` configuration to enumerate a GoogleTest logical dependency in `vcpkg.json` * Add a `vcpkg-configuration.json` to select a known-good release of vcpkg dependencies for consistent reproduction of builds. This is effectively a lockfile in the form of a vcpkg commit SHA.
328cb71 to
2d536d8
Compare
|
Currently blocked by bemanproject/infra-containers#9 |
|
Closing out this PR since there hasn't been activity for 6 months. Feel free to reopen if there's interest in continuing it. |
vcpkg.jsonconfiguration to enumerate a GoogleTest logical dependency invcpkg.jsonvcpkg-configuration.jsonto select a known-good release of vcpkg dependencies for consistent reproduction of builds. This is effectively a lockfile in the form of a vcpkg commit SHA.This will provide consistent, cross-platform development workflows when using vcpkg for managing dependencies (i.e., GoogleTest). This is an intermediate step towards bemanproject/infra#135, but this change does not fully package this project for vcpkg. That would require authoring a "portfile", either in this repo or (my preference) in the upstream vcpkg repo.
I'm going to leave this as a Draft until the following is true of this PR:
Wire up the newly supported workflow to CI. CI should fail if vcpkg JSON files are missing, empty, or otherwise not meeting requirements. This could provide a consistent vcpkg-based CI on all supported OSs if that's attractive.
Add documentation demonstrating the support for building against vcpkg dependencies.