-
Notifications
You must be signed in to change notification settings - Fork 613
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
Cannot use vcpkg in manifest mode with cpp image #1133
Comments
Hi 👋 Thanks for opening the issue. To keep the cpp image size minimal, we are intentionally using Doing a full git clone would significantly increase the size of the cpp image. @NoMore201, do you think cloning up to the last N commits would be useful to you? |
Hello! To be fair I'm not a vcpkg expert to tell if this is the right way to do things, since no one else complained so far. Anyway it is rather easy to modify the dev container to clone the entire history. I would say to keep it like it is, unless someone else with more experience has something to add. |
@samruddhikhandale I recommend you get in touch with the vcpkg team at Microsoft if you have further questions. |
I just spent several hours debugging a working config that I was moving to dev containers because the installed vcpkg is broken for manifest mode. It makes no sense to intentionally hobble a specific mode and not document it in the readme. |
Hello @willie , Thank you for raising your concern on this issue. Would you kindly let me know at which stage(while installing the packages using vcpkg in manifest mode or while building the project later) does this fail for you & also if possible would you kindly share the respective manifest file used for this instance? With Regards, |
In manifest mode, you add vcpkg to the CMakeLists.txt:
At that point, the shallow copy gives you all kinds errors. I had to add this to my devcontainer dockerfile (VCPKG_FORCE_SYSTEM_BINARIES is for arm64):
The docs for vcpkg install are very clear on how to install it. |
Hello @willie , Thank you so much for the detailed explanation. I tried it with the following steps with the cpp devcontainer image. For this at least I didn't need to clone the complete vcpkg repository although I did it in manifest mode, It was only needed to install some extra system libraries as given below which I added in the Dockerfile. Perhaps there are more complicated cases on which I am missing out here. Kindly let me know in case of such concerns.
|
When using vcpkg in manifest mode, it is possible to specify a commit of the vcpkg repository to track via the
builtin-baseline
option, such as:Devcontainer cpp image clones vcpkg repository using the
--depth=1
option (link to the code) preventing usage of vcpkg in manifest mode, unless manually modifying the container image to fetch all git history.The text was updated successfully, but these errors were encountered: