New in version 3.14.

$<IN_LIST:...> handles empty list items.

In CMake 3.13 and lower, the $<IN_LIST:...> generator expression always returned 0 if the first argument was empty, even if the list contained an empty item. This behavior is inconsistent with the IN_LIST behavior of if(), which this generator expression is meant to emulate. CMake 3.14 and later handles this case correctly.

The OLD behavior of this policy is for $<IN_LIST:...> to always return 0 if the first argument is empty. The NEW behavior is to return 1 if the first argument is empty and the list contains an empty item.

This policy was introduced in CMake version 3.14. CMake version 3.28.20231205-g72ce0e6 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.