Spec-Zone.ru › CMake

CMP0212

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

add_custom_command() DEPENDS не удаляет суффиксы .exe.

При поиске зависимостей, указанных с помощью параметра DEPENDS команды add_custom_command(), CMake 4.3 и более ранние версии применяли эвристику, удаляющую .exe в конце значений аргумента DEPENDS; если существовала цель с таким именем без этого суффикса, создавалась зависимость на уровне цели от исполняемого файла. Это позволяло использовать имя выходного файла цели в качестве альтернативного варианта написания при указании зависимостей. Однако с появлением модели целей CMake указывать выходной файл таким образом больше не требуется, а если существуют цели, в именах которых есть суффикс .exe, это приводит к конфликтам при создании зависимостей на уровне целей и файлов.

Поведение OLD этой политики удаляет суффикс .exe из аргументов DEPENDS при поиске зависимостей на уровне целей. Поведение NEW не удаляет суффикс .exe при поиске. В остальном CMake продолжит работу в обычном режиме, применяя другие эвристики поиска зависимостей, указанные в DEPENDS команды add_custom_command(). Если требуется зависимость на уровне цели, рекомендуется указывать имя цели исполняемого файла. Если требуется зависимость на уровне файла, рекомендуется использовать генераторное выражение TARGET_FILE, а не подразумевать цель косвенно через имя её выходного файла.

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

Spec-Zone.ru

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