File: CMP0101.rst

package info (click to toggle)
cmake 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 158,704 kB
  • sloc: ansic: 406,077; cpp: 309,512; sh: 4,233; python: 3,696; yacc: 3,109; lex: 1,279; f90: 538; asm: 471; lisp: 375; java: 310; cs: 270; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 110; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22; sed: 2
file content (29 lines) | stat: -rw-r--r-- 1,178 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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.

.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.17
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
.. include:: include/STANDARD_ADVICE.rst

.. include:: include/DEPRECATED.rst