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