Replies: 2 comments 2 replies
-
|
Beta Was this translation helpful? Give feedback.
-
Hi and thanks for working on the qgis port. Since you use manifest mode, you can set the cmake variables Setting those variables will cause vcpkg to emit a lot of diagnostics about the packages it builds, and "compatibility data" used to evaluate the binarycache identifier, or abi-hash, for a package. With verbose debug enabled,
is emited over here. Most of the hashes printed are dependent on the revision of the vcpkg repository that is being used. As long as all abientries match between two builds, the generated binarycache can be reused. VCPKG defaults to storing binary caches in your home directory, however, it can also be setup to publish binary caches to repositories in the internet. Nuget is popular for this purpose, because you can publish nuget packages for free on github. You can take a free github actions runner, and configure it up to upload generated binarycaches on github. While the free runner isn't exactly impressive in terms of performance, you can use the time to check the verbose debug diagnostics it emits, compare them to your local machine's ones, and try to setup your local machine to use the same configuration as the free runner has - or of cause, to setup the runner to use the same configuration your local machine has. Once your abientries and the ones from the runner look identical, generate a personal access token for github that has the As vcpkg checks for the presence of the nuget packages on github when starting to deploy, rather then rechecking after each package was deployed, your local setup will decide to rebuild packages that the actions runner had not yet published when the local machine invoked vcpkg, which will cause vcpkg to suffer a non-fatal exception when attempting to publish from your local machine (if you didn't grant Play a bit with the stuff and you will notice that the github actions cannot build qtbase, because it takes just too much disk space for the free runner's limited resources. If you're so far happy with the free runner's work on the "small fries" packages, you can upgrade the free runner to a payed one, which has more resources and is capable of building Qt and the other stuff. I'd recommend you to not invest into those before you managed to get a limited setup running with the free runner up though. Alternately, you can also use a virtual private server on some inexpensive public cloud system, and configure it as a self-hosted runner, which might or might not be more economic then the github hosted runners. Github hosted free runners are maintained by github, so they're updated by others. Though there are changelogs and lists of installed software of the public runners, they still update "on their own" causing the abi-hashes to break and having to redeploy. Self-Hosted runners don't update w/o you updating them, which is both a blessing and a curse. TLDR: Build on the cloud and use the nuget binarycaching. |
Beta Was this translation helpful? Give feedback.
-
I'm trying to build QGIS with Vcpkg. I wrote the following manifest
However, it took me about 2 days so far to install these dependencies. What's worse, my laptop (windows 11) crashed several times when installing some packages. I'm still struggling to build these packages.
So how can I make it faster to install Vcpkg packages?
Beta Was this translation helpful? Give feedback.
All reactions