Spec-Zone.ru › CMake 3.31

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 требует, чтобы проекты устанавливали либо переменную, либо это приводит к ошибке fatal. Однако проекту может потребоваться дополнительно указать особенности процессора, например, -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_policy() или cmake_minimum_required(). Если она не установлена, CMake выдает предупреждение и использует поведение OLD.

Примечание

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

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

Spec-Zone.ru

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