Allow vcpkg export with manifest-based projects #24668
Replies: 6 comments 3 replies
-
Maybe have a look at https://github.com/microsoft/vcpkg/blob/master/docs/users/binarycaching.md#github-packages |
Beta Was this translation helpful? Give feedback.
-
that looks really promising -- though it looks like that's just for restoring the package via NuGet and Github Packages, right? I don't believe that example shows how the actually create the binary cache and push it to GitHub Packages. |
Beta Was this translation helpful? Give feedback.
-
It would be great if I could specify a package store where my dependencies are cached in the manifest file. This seems obvious, so there must be a reason why it hasn’t been implemented. |
Beta Was this translation helpful? Give feedback.
-
Agreed; the binary caching mode above would be super helpful it there was also a way to automatically generate the dependencies and store them. |
Beta Was this translation helpful? Give feedback.
-
The use case I had in mind was an ephemeral system like a CI workflow. Although I do agree that the current binary cache mechanism works well when building locally. |
Beta Was this translation helpful? Give feedback.
-
Revisiting this to add that we have added vcpkg export support for manifest mode in the 2023.10.19 release. See our blog post for details: https://devblogs.microsoft.com/cppblog/vcpkg-2023-10-19-release-export-for-manifests-documentation-improvements-and-more/ |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
I use manifests to track my dependencies and automatically build them in Visual Studio. I've recently started doing Continuous Integration with GitHub Actions, and right now I build all dependencies using vcpkg in the Docker container:
However, even though my projects only directly use 3-5 dependencies, once those libraries' dependencies are built, vcpkg is responsible for building 50-70 packages. This takes upwards of 90 minutes to build in the docker containers, which is a lot longer than I'd prefer.
NuGet is pretty much built to solve this problem, so I looked into using it with vcpkg's export function to load the built binaries into an archive and load them to GitHub. Unfortunately when I try it:
Proposed solution
I'd like for
vcpkg export
to support exporting the binaries for dependencies built with the vcpkg manifest system, just like it works in classic mode. This way I could build a NuGet package, load it to my repository as a package, and then use it for automated testing of my C++ projects.Beta Was this translation helpful? Give feedback.
All reactions