Shareable¶
A root directory with installed packages can be shared between several local
projects. If one local project triggers installation of a new third
party package, then the root directory will be locked against modifications until the install
has either finished or interrupted (i.e. Ctrl-C). Other local projects that try to run
hunter_add_package
for the same root at the same time will automatically wait for the root
to be unlocked. Note that different root directories have independent locks,
e.g. triggering a build of OpenSSL
for iOS
will not delay building of
GTest
for Android
. Internally this is done using the file(LOCK ...)
CMake
command (available since 3.2
).
Similar synchronization is done when initializing Hunter using the HunterGate
command.
This is a very handy feature for CI systems where an environment is shared
between several jobs, e.g. Jenkins.