CMP0090 — CMake 4.3.0 Documentation

# CMP0090

Added in version 3.15.

`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. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake does not warn, and uses `OLD` behavior.

Note

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