CMP0101 ------- .. versionadded:: 3.17 :command:`target_compile_options` now always honors the ``BEFORE`` keyword. In CMake 3.16 and below, the :command:`target_compile_options` command ignores the ``BEFORE`` keyword when inserting items into the :prop_tgt:`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 :prop_tgt:`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 :prop_tgt:`INTERFACE_COMPILE_OPTIONS`. The ``OLD`` behavior for this policy is to not honor the ``BEFORE`` keyword when inserting into the :prop_tgt:`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 :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. Unlike many policies, CMake version |release| does *not* warn when this policy is not set and simply uses ``OLD`` behavior. .. include:: DEPRECATED.txt