summaryrefslogtreecommitdiffstats
path: root/Help/policy
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2018-11-06 16:27:03 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2018-11-19 22:02:06 (GMT)
commitb5f8113ca7796df47bcb04bcd77991885c3b1b07 (patch)
tree60304b3a34939b475a4314dd6dce11f34e2922f7 /Help/policy
parent1dc85a6652bc8255ff7a9ef39028a7df45e3007b (diff)
downloadCMake-b5f8113ca7796df47bcb04bcd77991885c3b1b07.zip
CMake-b5f8113ca7796df47bcb04bcd77991885c3b1b07.tar.gz
CMake-b5f8113ca7796df47bcb04bcd77991885c3b1b07.tar.bz2
Genex: Add policy to handle empty list items in $<IN_LIST:...>
The old behavior of $<IN_LIST:...> is inconsistent with that of if(IN_LIST), in that it does not find an empty search item even if the list contains empty items. This change adds a new policy to correctly handle empty items and make the behavior more consistent with if(IN_LIST). Fixes: #18556
Diffstat (limited to 'Help/policy')
-rw-r--r--Help/policy/CMP0085.rst21
1 files changed, 21 insertions, 0 deletions
diff --git a/Help/policy/CMP0085.rst b/Help/policy/CMP0085.rst
new file mode 100644
index 0000000..d9ec9a2
--- /dev/null
+++ b/Help/policy/CMP0085.rst
@@ -0,0 +1,21 @@
+CMP0085
+-------
+
+``$<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
+:command:`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
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
+explicitly.
+
+.. include:: DEPRECATED.txt