# CMP0101

New in version 3.17.

`target_compile_options()` now honors `BEFORE` keyword in all scopes.

In CMake 3.16 and below the `target_compile_options()` ignores the `BEFORE` keyword in private scope. CMake 3.17 and later honors `BEFORE` keyword in all scopes. This policy provides compatibility for projects that have not been updated to expect the new behavior.

The `OLD` behavior for this policy is to not honor `BEFORE` keyword in private scope. The `NEW` behavior of this policy is to honor `BEFORE` keyword in all scopes.

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.19.0-rc1 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.