CMP0174
Добавлена в версии 3.31.
cmake_parse_arguments(PARSE_ARGV) определяет переменную для пустой строки после ключевого слова с одним значением.
Одна из основных причин использования формы PARSE_ARGV команды cmake_parse_arguments() заключается в более надежной обработке граничных случаев, связанных с пустыми значениями. Не-PARSE_ARGV форма не сохраняет пустые аргументы, но форма PARSE_ARGV сохраняет. Для каждого ключевого слова с одним значением должна быть определена переменная, если это ключевое слово присутствует, даже если оно сопровождается пустой строкой.
До CMake 3.31 переменная не определялась, если значение после ключевого слова с одним значением было пустой строкой. Это означало, что код не мог отличить отсутствие ключевого слова от его наличия с пустым значением, кроме как перебирая все аргументы и проверяя наличие ключевого слова.
Для поведения OLD этой политики, cmake_parse_arguments(PARSE_ARGV) не определяет переменную для ключевого слова с одним значением, сопровождаемого пустой строкой или вообще без значения.
Для поведения NEW , cmake_parse_arguments(PARSE_ARGV) всегда определяет переменную для каждого указанного ключевого слова в аргументах, даже для ключевого слова с одним значением с пустой строкой в качестве значения или вообще без значения. С поведением NEW код может надежно проверить, было ли задано ключевое слово с одним значением, используя только if(DEFINED <prefix>_<keyword>).
Эта политика была введена в версии CMake 3.31. Она может быть установлена с помощью cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake выводит предупреждение и использует поведение OLD.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0174.html