$<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.16.9 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.