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.26.0-rc3 выдает предупреждение, когда параметр не установлен, и использует OLD поведение. Используйте команду cmake_policy(), чтобы установить его явно в OLD или NEW.
Примечание
OLD поведение параметра deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2023 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.26/policy/CMP0123.html