Spec-Zone.ru › CMake

CMP0118

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

Исходные файлы GENERATED можно использовать в разных каталогах без ручной пометки.

В CMake 3.19 и более ранних версиях свойство исходного файла GENERATED, как и другие свойства исходных файлов, задавалось отдельно для каждого каталога. Если исходный файл создавался в одном каталоге, проектам приходилось вручную устанавливать свойство GENERATED в другом каталоге, чтобы использовать этот файл.

Принадлежность исходного файла к сгенерированным — это глобальное свойство источника, которое может принимать только одно из двух значений: файл либо сгенерирован, либо нет. В CMake 3.20 и более поздних версиях предпочтительным является разрешение использовать в других каталогах исходные файлы, сгенерированные в одном каталоге, без ручной пометки как GENERATED. Кроме того, теперь свойству GENERATED можно присваивать только логические значения, и его нельзя отключить после включения. Эта политика обеспечивает совместимость с проектами, которые не были обновлены с учётом такого поведения.

Поведение политики OLD заключается в том, что сгенерированные файлы разрешено использовать только в каталогах, где включено свойство GENERATED. Поведение политики NEW заключается в том, что сгенерированные файлы разрешено использовать в других каталогах без явного включения свойства GENERATED для этих каталогов.

Добавлено в версии 3.30: Политика CMP0163 также делает свойство исходного файла GENERATED видимым для вызовов get_property() и get_source_file_property() в других каталогах.

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

Примечание

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

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

Spec-Zone.ru

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