Spec-Zone.ru › CMake

CMP0175

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

add_custom_command() отклоняет недопустимые аргументы.

В CMake 3.30 и более ранних версиях неподдерживаемые ключевые слова, а также отсутствующие или недопустимые аргументы для различных форм команды add_custom_command() молча игнорировались. В CMake 3.31 реализована более строгая проверка аргументов, и недопустимые или отсутствующие аргументы будут отмечаться как ошибки.

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

  • Форма OUTPUT не принимает ключевые слова PRE_BUILD, PRE_LINK или POST_BUILD.
  • Если указано ключевое слово APPEND, форма OUTPUT также не принимает ключевые слова BYPRODUCTS, COMMAND_EXPAND_LISTS, DEPENDS_EXPLICIT_ONLY, DEPFILE, JOB_POOL, JOB_SERVER_AWARE, USES_TERMINAL или VERBATIM.
  • Для формы TARGET требуется указать ровно одно из PRE_BUILD, PRE_LINK или POST_BUILD. Ранее, если не было указано ни одного из них, предполагалось POST_BUILD; если же было указано несколько ключевых слов, использовалось последнее.
  • Форма TARGET не принимает ключевые слова DEPENDS, DEPENDS_EXPLICIT_ONLY, DEPFILE, IMPLICIT_DEPENDS, MAIN_DEPENDENCY, JOB_POOL или JOB_SERVER_AWARE.
  • Для формы TARGET теперь требуется указать хотя бы один COMMAND.
  • Если после ключевого слова должно указываться значение, но оно не указано, ранее это трактовалось так, как если бы ключевое слово вообще не было указано.
  • После ключевого слова COMMENT должно указываться ровно одно значение. Если указано несколько значений или ключевое слово COMMENT указано более одного раза, это считается ошибкой.

Эта политика была введена в версии CMake 3.31. Её можно установить с помощью 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/CMP0175.html

Spec-Zone.ru

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