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.