Spec-Zone.ru › CMake

CMP0127

Добавлено в версии 3.22.

cmake_dependent_option() поддерживает полный Синтаксис условий.

Параметр <condition> принимает список условий, разделённых точкой с запятой. CMake 3.21 и более ранние версии вычисляют каждое condition как if(${condition}), что некорректно обрабатывает условия со вложенными группами скобок. CMake 3.22 и более поздние версии вместо этого предпочитают вычислять каждое condition как if(<condition>), где <condition> повторно разбирается так, как если бы оно было буквально записано в вызове if(). Это позволяет использовать такие выражения, как:

"A AND (B OR C)"

но требует переписать выражения, подобные следующим:

"FOO MATCHES (UPPER|lower)"

в такой вид:

"FOO MATCHES \"(UPPER|lower)\""

Политика CMP0127 обеспечивает совместимость с проектами, которые ещё не были обновлены с учётом нового поведения.

Эта политика была введена в CMake версии 3.22. Её можно установить с помощью cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake выдаёт предупреждение и использует поведение OLD.

Примечание

Поведение OLD политики по определению считается устаревшим и может быть удалено в будущей версии CMake.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0127.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API