CMP0101ΒΆ
New in version 3.17.
target_compile_options() now always honors the BEFORE keyword.
In CMake 3.16 and below, the target_compile_options() command
ignores the BEFORE keyword when inserting items into the
COMPILE_OPTIONS target property (PRIVATE and PUBLIC
items). CMake 3.17 and later honors the BEFORE keyword in all cases.
This policy provides compatibility for projects that have not been updated
to expect the new behavior.
The behavior of inserting items into the INTERFACE_COMPILE_OPTIONS
target property (PUBLIC and INTERFACE items) is not affected by this
policy. The BEFORE keyword has always been honored when adding items to
INTERFACE_COMPILE_OPTIONS.
The OLD behavior for this policy is to not honor the BEFORE keyword
when inserting into the COMPILE_OPTIONS property.
The NEW behavior for this policy is to honor the BEFORE keyword in
all cases.
This policy was introduced in CMake version 3.17. Use the
cmake_policy() command to set it to OLD or NEW explicitly.
Unlike many policies, CMake version 3.27.9 does not warn
when this policy is not set and simply uses OLD behavior.
Note
The OLD behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.