-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[vcpkg] Download vcpkg.exe rather than building it in bootstrap on Windows. #15474
Conversation
3975c2a
to
f265319
Compare
Closes #14995. |
693352c
to
484a493
Compare
@BillyONeal - Thanks a lot for the hard work so far.👍👍👍 So to confirm/verify:
Again thanks a lot for all the work you do!👏👏👏 |
Correct. I prepared this using
Correct. Issue tracking remains here.
In that repo, it's just a cmake project like any other, so there are no specific scripts. Here, bootstrap on the POSIX platforms still needs to be fixed to download and build the sources. |
cd8d74d
to
7ab1489
Compare
…ndows. This reduces bootstrap cost for Windows customers, resolving the issue initially submitted as microsoft#12502 . The toolsrc tree was extracted to https://github.com/microsoft/vcpkg-tool, and created as a submodule "vcpkg-tool" here. The name is explicitly chosen to be different from toolsrc because git doesn't like an ordinary directory becoming a submodule when changing branches or vice versa. Given that the name had to change, I set the name to the same name as the actual github repo. Clean build of vcpkg-tool repo example: https://dev.azure.com/vcpkg/public/_build/results?buildId=48871&view=results
7ab1489
to
f48c39d
Compare
# Conflicts: # scripts/azure-pipelines/end-to-end-tests-dir/registries.ps1 # toolsrc/cmake/utilities.cmake # toolsrc/include/vcpkg/base/expected.h # toolsrc/include/vcpkg/vcpkgcmdarguments.h # toolsrc/src/vcpkg-test/binarycaching.cpp # toolsrc/src/vcpkg-test/json.cpp # toolsrc/src/vcpkg-test/manifests.cpp # toolsrc/src/vcpkg.cpp # toolsrc/src/vcpkg/base/json.cpp # toolsrc/src/vcpkg/base/parse.cpp # toolsrc/src/vcpkg/build.cpp # toolsrc/src/vcpkg/dependencies.cpp # toolsrc/src/vcpkg/registries.cpp # toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
srcDir="$srcBaseDir/vcpkg-tool-$vcpkgToolReleaseTag" | ||
|
||
if [ -e "$tarballPath" ]; then | ||
vcpkgCheckEqualFileHash "$vcpkgToolUrl" "$tarballPath" "$vcpkgToolReleaseSha" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm, we should probably check the file hash, and if they're not equal, delete it and download again, as opposed to just failing.
Considering the status quo for all the other downloads in this script (or elsewhere in the tool -- that's why we had to add |
@BillyONeal yep, I'm good with that. |
This reduces bootstrap cost for Windows customers, resolving the issue initially submitted as #12502 .
The
toolsrc
tree was extracted to https://github.com/microsoft/vcpkg-tool.bootstrap.sh
was changed to download the right source tarball, extract, and build it. This was chosen over the previous attempt, a submodule, over concerns of accidentally destroying people's local modifications.We already have macos signed binaries ready in our infrastructure but the work to edit
bootstrap.sh
to consume them is not yet here.Next steps:
Replay any changes to toolsrc in this repo in the tool repo landing after microsoft/vcpkg-tool@913beb7Move / copy infrastructure from this main repo like C++ formatting rules that we want to enforce in the "tool" repo.Depends on:
[vcpkg] Use a tag file rather than conditional compilation to permanently disable metrics. #15470[vcpkg] Restore embedded git hash behind an option. #15472[vcpkg] Add sources for TLS 1.2 downloader tool. #15516[vcpkg] Add vcpkg_minimum_required as a replacement for VERSION.txt. #15638[vcpkg] Tool fixes needed for vcpkg-tool extraction #16012Clean build of vcpkg-tool repo example: https://dev.azure.com/vcpkg/public/_build/results?buildId=48871&view=results