Binaries from server¶
Hunter has an internal mechanism that saves the binaries of installed packages along
with meta-data about the toolchain, build options, and dependencies.
This allows Hunter to avoid triggering the same build when a new root directory is created.
For example, when a user changes the version of
it will affect
Config-ID, so a new root will be created. However, it will not affect
GTest builds (if it’s not a dependency), so the
GTest archive can be
unpacked from the local cache. The cache can be kept local or uploaded to a Hunter cache server.
The default server with cached binaries is
Archives are saved as GitHub release assets
and each is associated with a git tag.
Available packages can be queried using an
upload.* HTTP query from the GitHub branches URL:
Note that some toolchains may not work for specific packages. Check the
status in the Travis CI job details. For example, Qt is broken for the iOS armv7s architecture, so
we have to use the
Binaries/headers are stored in archives and archives are the result of packing the
CMAKE_INSTALL_PREFIX directory produced by the
cmake --build _builds --target install command. The idea is similar to CPack
functionality but is extended for non-CMake packages too.
> mkdir temp-dir > cd temp-dir [temp-dir]> wget https://github.com/ingenue/hunter-cache/releases/download/cache/aaee852f00aa3a2a884281e8920315a77fb14465.tar.bz2 [temp-dir]> tar xf aaee852f00aa3a2a884281e8920315a77fb14465.tar.bz2 [temp-dir]> ls include/gtest/gtest.h include/gtest/gtest.h [temp-dir]> ls lib/libgtest.a lib/libgtest.a