CMP0085¶
3.14 版新增。
$<IN_LIST:...> 处理空列表项。
在 CMake 3.13 及更早版本中,$<IN_LIST:...> 生成器表达式如果第一个参数为空,则始终返回 0,即使列表包含一个空项。这种行为与 if() 命令的 IN_LIST 行为不一致,而此生成器表达式旨在模仿 if() 命令的行为。CMake 3.14 及更高版本已正确处理此情况。
此策略的 OLD 行为是,如果第一个参数为空,则 $<IN_LIST:...> 始终返回 0。 NEW 行为是,如果第一个参数为空且列表包含一个空项,则返回 1。
此策略在 CMake 版本 3.14 中引入。它可以通过 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake 会发出警告并使用 OLD 行为。
注意
策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。