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.28.6 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.