New in version 3.27.

find_package() uses upper-case <PACKAGENAME>_ROOT variables.

In CMake 3.27 and above the find_package(<PackageName>) command now searches prefixes specified by the upper-case <PACKAGENAME>_ROOT CMake variable and the <PACKAGENAME>_ROOT environment variable in addition to the case-preserved <PackageName>_ROOT and <PackageName>_ROOT variables used since policy CMP0074. This policy provides compatibility with projects that have not been updated to avoid using <PACKAGENAME>_ROOT variables for other purposes.

The OLD behavior for this policy is to ignore <PACKAGENAME>_ROOT variables if the original <PackageName> has lower-case characters. The NEW behavior for this policy is to use <PACKAGENAME>_ROOT variables.

This policy was introduced in CMake version 3.27. CMake version 3.28.20231201-g3b8aaa1 warns when the policy is not set and uses OLD behavior. Use the cmake_policy() command to set it to OLD or NEW explicitly.


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