Required dependencies: openssl, grpc, libarchive - windows VM timeouts building

My software requires openssl, grpc, and libarchive in order to build. Several of these (especially grpc) are rather large dependencies to build completely, although I really only need the header files and libs in general. That said, it looks like vcpkg has all of these available, but it takes 54 minutes just to build grpc. The other dependencies are quite bad as well (openssl: 17 min, libarchive unable to complete).

example: https://travis-ci.com/mellery451/rippled/jobs/266701106#L435

At this point I don’t know how to make progress with windows if I can’t even build my deps. I’d be happy to prebuild packages with vcpkg and zip them up for download each time, but travis doesn’t give us a place to store generic dep archives. Ideally the storage should be within the travis network/DC so that the files are close to the VMs that need them.

Thoughts/advice about how to enable some of these dependencies on windows given the terrible perfomance of these machines?

Use build stages. Then save each artifact to both cache (to avoid rebuilding each time) and a workspace (for other stages to use).
Also keep in mind that build VMs are 2-core – so you should be able to speed up things with the likes of make -j2.

Alternatively and preferably, depending on your build system, you should be able to find prebuilt artifacts for common libraries. See e.g. How do I use mingw and msys2 shells?. A Windows builder VM also contains plenty of prebuilt libraries, too, as can be seen from a Windows VM snapshot.

2 Likes