diff options
Diffstat (limited to 'Help/command')
-rw-r--r-- | Help/command/add_link_options.rst | 17 | ||||
-rw-r--r-- | Help/command/project.rst | 15 | ||||
-rw-r--r-- | Help/command/target_link_options.rst | 24 |
3 files changed, 34 insertions, 22 deletions
diff --git a/Help/command/add_link_options.rst b/Help/command/add_link_options.rst index 1b02bee..a83005b 100644 --- a/Help/command/add_link_options.rst +++ b/Help/command/add_link_options.rst @@ -1,20 +1,25 @@ add_link_options ---------------- -Add options to the link of shared library, module and executable targets. +Add options to the link step for executable, shared library or module +library targets in the current directory and below that are added after +this command is invoked. .. code-block:: cmake add_link_options(<option> ...) -Adds options to the link step for targets in the current directory and below -that are added after this command is invoked. See documentation of the +This command can be used to add any link options, but alternative commands +exist to add libraries (:command:`target_link_libraries` or +:command:`link_libraries`). See documentation of the :prop_dir:`directory <LINK_OPTIONS>` and :prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties. -This command can be used to add any options, but alternative commands -exist to add libraries (:command:`target_link_libraries` or -:command:`link_libraries`). +.. note:: + + This command cannot be used to add options for static library targets, + since they do not use a linker. To add archiver or MSVC librarian flags, + see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property. Arguments to ``add_link_options`` may use "generator expressions" with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` diff --git a/Help/command/project.rst b/Help/command/project.rst index 7e33ccd..41e1112 100644 --- a/Help/command/project.rst +++ b/Help/command/project.rst @@ -112,12 +112,13 @@ Usage The top-level ``CMakeLists.txt`` file for a project must contain a literal, direct call to the :command:`project` command; loading one through the :command:`include` command is not sufficient. If no such -call exists CMake will implicitly add one to the top that enables the -default languages (``C`` and ``CXX``). +call exists, CMake will issue a warning and pretend there is a +``project(Project)`` at the top to enable the default languages +(``C`` and ``CXX``). .. note:: - Call the :command:`cmake_minimum_required` command at the beginning - of the top-level ``CMakeLists.txt`` file even before calling the - :command:`project()` command. It is important to establish version and - policy settings before invoking other commands whose behavior they - may affect. See also policy :policy:`CMP0000`. + Call the :command:`project()` command near the top of the top-level + ``CMakeLists.txt``, but *after* calling :command:`cmake_minimum_required`. + It is important to establish version and policy settings before invoking + other commands whose behavior they may affect. + See also policy :policy:`CMP0000`. diff --git a/Help/command/target_link_options.rst b/Help/command/target_link_options.rst index 285455a..b5abbc4 100644 --- a/Help/command/target_link_options.rst +++ b/Help/command/target_link_options.rst @@ -1,7 +1,8 @@ target_link_options ------------------- -Add link options to a target. +Add options to the link step for an executable, shared library or module +library target. .. code-block:: cmake @@ -9,20 +10,25 @@ Add link options to a target. <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) -Specifies link options to use when linking a given target. 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` and must not be an :ref:`ALIAS target <Alias Targets>`. +This command can be used to add any link options, but alternative commands +exist to add libraries (:command:`target_link_libraries` or +:command:`link_libraries`). See documentation of the +:prop_dir:`directory <LINK_OPTIONS>` and +:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties. + +.. note:: + + This command cannot be used to add options for static library targets, + since they do not use a linker. To add archiver or MSVC librarian flags, + see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property. + 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 |