New in version 3.21.
ARMClang cpu/arch compile and link flags must be set explicitly.
CMake 3.20 and lower automatically maps the
variable and an undocumented
CMAKE_SYSTEM_ARCH to compile and link options
ARMClang. For example, the
-mcpu=cortex-m33 flag is added when
cortex-m33. CMake requires
projects to set either variable or it raises a fatal error. However, the
project may need to additionally specify CPU features using e.g.
-mcpu=cortex-m33+nodsp, conflicting with the
by CMake. This results in either link errors or unusable binaries.
CMake 3.21 and above prefer instead to not add any cpu/arch compile and link flags automatically. Instead, projects must specify them explicitly. This policy provides compatibility for projects that have not been updated.
OLD behavior of this policy requires projects that use
to set either
and it automatically adds a compile option
a link option
--cpu= based on those variables. The
does not add compile or link options, and projects are responsible for
setting correct options.
This policy was introduced in CMake version 3.21. CMake version 3.26.20230606-gc40b65b
warns when the policy is not set and uses
OLD behavior. Use the
cmake_policy() command to set it to
OLD behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.