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/v3.31/policy/CMP0174.html