CMake/Tutorials/Package Registry
CMake provides two central locations to register packages that have been built or installed anywhere on a system:
Each registry lists for a specific package name a list of directories in which find_package
should search for package configuration files (<package>Config.cmake).
User
The User Package Registry is stored in a per-user location.
A project may use the export(PACKAGE)
command to register its build tree in the user package registry.
A package installer may populate the registry using its own means to refer to the install location.
On Windows the user package registry is stored in the Windows registry under a key in HKEY_CURRENT_USER
.
A <package>
may appear under registry key
HKEY_CURRENT_USER\Software\Kitware\CMake\Packages\<package>
as a REG_SZ
value, with arbitrary name, that specifies the directory containing the package configuration file.
On UNIX platforms the user package registry is stored in the user home directory under ~/.cmake/packages
.
A <package>
may appear under the directory
~/.cmake/packages/<package>
as a file, with arbitrary name, whose content specifies the directory containing the package configuration file.
System
The System Package Registry is stored in a system-wide location. A package installer may populate the registry using its own means to refer to the install location.
On Windows the system package registry is stored in the Windows registry under a key in HKEY_LOCAL_MACHINE
.
A <package>
may appear under registry key
HKEY_LOCAL_MACHINE\Software\Kitware\CMake\Packages\<package>
as a REG_SZ
value, with arbitrary name, that specifies the directory containing the package configuration file.
There is no system package registry on non-Windows platforms.