CMP0123
Добавлена в версии 3.21.
ARMClang флаги компиляции и компоновки для cpu/архитектуры должны быть установлены явно.
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/архитектуры. Вместо этого проекты должны указать их явно. Данная политика обеспечивает совместимость для проектов, которые не были обновлены.
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/latest/policy/CMP0123.html