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