diff options
author | Nikita Nemkin <nikita@nemkin.ru> | 2020-11-07 20:30:30 (GMT) |
---|---|---|
committer | Nikita Nemkin <nikita@nemkin.ru> | 2020-11-09 15:51:57 (GMT) |
commit | c705279bae45c85b689febd66d5437d9ec05c9b9 (patch) | |
tree | f64bca14f17a902a96d67a30357df3d1e6c745eb /Help/command/target_sources.rst | |
parent | 63a1917d098922b59bbba8fdeb42519363d5ba0d (diff) | |
download | CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.zip CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.tar.gz CMake-c705279bae45c85b689febd66d5437d9ec05c9b9.tar.bz2 |
Help: Add `.. versionadded` directives to commands documentation
This change ony concerns directives that appear in the document body.
The guidelines for inserting version directives:
* Baseline version is CMake 3.0, i.e. directives start at 3.1.
* Always use `.. versionadded::` directive, avoid ad-hoc version
references. Exception: policy pages.
* For new command signatures, put `versionadded` on a separate line
after the signature.
* For a group of new signatures in a new document section,
a single version note at the beginning of the section is sufficient.
* For new options, put `versionadded` on a separate line before
option description.
* If all the option descriptions in the list are short one-liners,
it's fine to put `versionadded` on the same line as the description.
* If multiple option descriptions in close proximity would have
the same ..versionadded directive, consider adding a single
directive after the list, mentioning all added options.
* For compact value lists and sub-option lists, put a single
`versionadded` directive after the list mentioning all additions.
* When a change is described in a single paragraph, put
`versionadded` into that paragraph.
* When only part of the paragraph has changed, separate the changed
part if it doesn't break the flow. Otherwise, write a follow-up
clarification paragraph and apply version directive to that.
* When multiple version directives are close by, order earlier
additions before later additions.
* Indent related lists and code blocks to include them in the scope
of `versionadded` directive.
Issue: #19715
Diffstat (limited to 'Help/command/target_sources.rst')
-rw-r--r-- | Help/command/target_sources.rst | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/Help/command/target_sources.rst b/Help/command/target_sources.rst index 07fb937..eb147ee 100644 --- a/Help/command/target_sources.rst +++ b/Help/command/target_sources.rst @@ -12,29 +12,37 @@ Add sources to a target. [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) Specifies sources to use when building a target and/or its dependents. -Relative source file paths are interpreted as being relative to the current -source directory (i.e. :variable:`CMAKE_CURRENT_SOURCE_DIR`). The -named ``<target>`` must have been created by a command such as +The named ``<target>`` must have been created by a command such as :command:`add_executable` or :command:`add_library` or :command:`add_custom_target` and must not be an :ref:`ALIAS target <Alias Targets>`. +.. versionadded:: 3.13 + Relative source file paths are interpreted as being relative to the current + source directory (i.e. :variable:`CMAKE_CURRENT_SOURCE_DIR`). + See policy :policy:`CMP0076`. + +.. versionadded:: 3.20 + ``<target>`` can be a custom target. + The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to specify the scope of the items following them. ``PRIVATE`` and ``PUBLIC`` items will populate the :prop_tgt:`SOURCES` property of ``<target>``, which are used when building the target itself. ``PUBLIC`` and ``INTERFACE`` items will populate the :prop_tgt:`INTERFACE_SOURCES` property of ``<target>``, which are used -when building dependents. (:ref:`IMPORTED targets <Imported Targets>` -only support ``INTERFACE`` items because they are not build targets.) +when building dependents. The following arguments specify sources. Repeated calls for the same ``<target>`` append items in the order called. The targets created by :command:`add_custom_target` can only have ``PRIVATE`` scope. +.. versionadded:: 3.3 + Allow exporting targets with :prop_tgt:`INTERFACE_SOURCES`. + +.. versionadded:: 3.11 + Allow setting ``INTERFACE`` items on :ref:`IMPORTED targets <Imported Targets>`. + Arguments to ``target_sources`` may use "generator expressions" with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual for available expressions. See the :manual:`cmake-buildsystem(7)` manual for more on defining buildsystem properties. - -See also the :policy:`CMP0076` policy for older behavior related to the -handling of relative source file paths. |