Spec-Zone.ru › CMake 3.23

CMP0123

Новое в версии 3.21.

ARMClang флаги компиляции и компоновки cpu/arch должны быть заданы явно.

CMake 3.20 и ниже автоматически сопоставляет переменную CMAKE_SYSTEM_PROCESSOR и недокументированную CMAKE_SYSTEM_ARCH с опциями компиляции и компоновки для ARMClang. Например, добавляется флаг -mcpu=cortex-m33, когда CMAKE_SYSTEM_PROCESSOR равно cortex-m33. CMake требует, чтобы проекты задавали эти переменные, иначе возникает фатальная ошибка. Однако, проекту может потребоваться дополнительно указать особенности процессора, например, -mcpu=cortex-m33+nodsp, что конфликтует с -mcpu=cortex-m33, добавленным CMake. Это приводит к ошибкам компоновки или непригодным для использования бинарным файлам.

CMake 3.21 и выше предпочитает не добавлять автоматически флаги компиляции и компоновки cpu/arch. Вместо этого проекты должны указывать их явно. Данный политический параметр обеспечивает совместимость для проектов, которые не были обновлены.

OLD поведение этого параметра требует от проектов, использующих ARMClang задать либо CMAKE_SYSTEM_PROCESSOR, либо CMAKE_SYSTEM_ARCH, и он автоматически добавляет опцию компиляции -mcpu= или -march= и опцию компоновки --cpu= на основе этих переменных. NEW поведение не добавляет опции компиляции или компоновки, и проекты несут ответственность за установку корректных опций.

Этот политический параметр был введён в CMake версии 3.21. CMake версии 3.23.3 предупреждает, если этот параметр не задан, и использует OLD поведение. Используйте команду cmake_policy(), чтобы явно установить его в OLD или NEW.

Примечание

OLD поведение параметра deprecated by definition и может быть удалено в будущей версии CMake.

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/policy/CMP0123.html

Spec-Zone.ru

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