CMake/Tutorials/Package Registry

From KitwarePublic
< CMake‎ | Tutorials
Revision as of 20:03, 14 February 2012 by Brad.king (talk | contribs) (Created page with "CMake provides two central locations to register packages that have been built or installed anywhere on a system: * User Package Registry * [[#System|System Package Re...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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.