export(PACKAGE) does not populate package registry by default.

In CMake 3.14 and below the export(PACKAGE) command populated the user package registry by default and users needed to set the CMAKE_EXPORT_NO_PACKAGE_REGISTRY to disable it, e.g. in automated build and packaging environments. Since the user package registry is stored outside the build tree, this side effect should not be enabled by default. Therefore CMake 3.15 and above prefer that export(PACKAGE) does nothing unless an explicit CMAKE_EXPORT_PACKAGE_REGISTRY variable is set to enable it. This policy provides compatibility with projects that have not been updated.

The OLD behavior for this policy is for export(PACKAGE) command to populate the user package registry unless CMAKE_EXPORT_NO_PACKAGE_REGISTRY is enabled. The NEW behavior is for export(PACKAGE) command to do nothing unless the CMAKE_EXPORT_PACKAGE_REGISTRY is enabled.

This policy was introduced in CMake version 3.15. Use the cmake_policy() command to set it to OLD or NEW explicitly. Unlike most policies, CMake version 3.15.7 does not warn when this policy is not set and simply uses OLD behavior.


The OLD behavior of a policy is deprecated by definition and may be removed in a future version of CMake.