diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2018-04-24 15:01:01 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2018-06-06 15:22:39 (GMT) |
commit | c1f5a44b28047cde74e2fb10e8d68e314272f699 (patch) | |
tree | 6124b73331c13c92480b5352045686758d3df86f /Help/command/target_link_options.rst | |
parent | 8e28d2630a60475dad715162a1802d301ada35bd (diff) | |
download | CMake-c1f5a44b28047cde74e2fb10e8d68e314272f699.zip CMake-c1f5a44b28047cde74e2fb10e8d68e314272f699.tar.gz CMake-c1f5a44b28047cde74e2fb10e8d68e314272f699.tar.bz2 |
LINK_OPTIONS: Add new family of properties
This family enable to manage link flags
Three new properties:
* directory property: LINK_OPTIONS
* target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS
Two new commands
* add_link_options(): to populate directory property
* target_link_options(): to populate target properties
Fixes: #16543
Diffstat (limited to 'Help/command/target_link_options.rst')
-rw-r--r-- | Help/command/target_link_options.rst | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Help/command/target_link_options.rst b/Help/command/target_link_options.rst new file mode 100644 index 0000000..489f981 --- /dev/null +++ b/Help/command/target_link_options.rst @@ -0,0 +1,40 @@ +target_link_options +------------------- + +Add link options to a target. + +:: + + target_link_options(<target> [BEFORE] + <INTERFACE|PUBLIC|PRIVATE> [items1...] + [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) + +Specify link options to use when linking a given target. The +named ``<target>`` must have been created by a command such as +:command:`add_executable` or :command:`add_library` and must not be an +:ref:`ALIAS target <Alias Targets>`. + +If ``BEFORE`` is specified, the content will be prepended to the property +instead of being appended. + +This command can be used to add any options, but +alternative commands exist to add libraries +(:command:`target_link_libraries` and :command:`link_libraries`). +See documentation of the :prop_dir:`directory <LINK_OPTIONS>` and +:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties. + +The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to +specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC`` +items will populate the :prop_tgt:`LINK_OPTIONS` property of +``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the +:prop_tgt:`INTERFACE_LINK_OPTIONS` property of ``<target>``. +(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.) +The following arguments specify compile options. Repeated calls for the same +``<target>`` append items in the order called. + +Arguments to ``target_link_options`` 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. + +.. include:: OPTIONS_SHELL.txt |