Help: Clarify that CMAKE_<LANG>_FLAGS are used when driving linking

State explicitly that these flags are used when driving either compiling
or linking.  For linking, document their order w.r.t. link flags
specified by commands.

Fixes: #24662
This commit is contained in:
Brad King
2023-03-31 09:41:35 -04:00
parent f93b13151e
commit 530faee017
2 changed files with 23 additions and 12 deletions

View File

@@ -1,9 +1,10 @@
CMAKE_<LANG>_FLAGS
------------------
Flags for all build types.
``<LANG>`` flags used regardless of the value of :variable:`CMAKE_BUILD_TYPE`.
Language-wide flags for language ``<LANG>`` used when building for
all configurations. These flags will be passed to all invocations
of the compiler. This includes invocations that drive compiling
and those that drive linking.
For each language, if this variable is not defined, it is initialized
and stored in the cache using values from environment variables in
@@ -27,7 +28,10 @@ combination with CMake's builtin defaults for the toolchain:
This value is a command-line string fragment. Therefore, multiple options
should be separated by spaces, and options with spaces should be quoted.
The flags in this variable will be passed to the compiler before those
in the per-configuration :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variant,
and before flags added by the :command:`add_compile_options` or
:command:`target_compile_options` commands.
The flags in this variable will be passed before those in the
per-configuration :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` variable.
On invocations driving compiling, flags from both variables will be passed
before flags added by commands such as :command:`add_compile_options` and
:command:`target_compile_options`. On invocations driving linking,
they will be passed before before flags added by commands such as
:command:`add_link_options` and :command:`target_link_options`.

View File

@@ -1,9 +1,16 @@
CMAKE_<LANG>_FLAGS_<CONFIG>
---------------------------
Flags for language ``<LANG>`` when building for the ``<CONFIG>`` configuration.
Language-wide flags for language ``<LANG>`` used when building for
the ``<CONFIG>`` configuration. These flags will be passed to all
invocations of the compiler in the corresponding configuration.
This includes invocations that drive compiling and those that drive
linking.
The flags in this variable will be passed to the compiler after those
in the :variable:`CMAKE_<LANG>_FLAGS` variable, but before flags added
by the :command:`add_compile_options` or :command:`target_compile_options`
commands.
The flags in this variable will be passed after those in the
:variable:`CMAKE_<LANG>_FLAGS` variable. On invocations driving compiling,
flags from both variables will be passed before flags added by commands
such as :command:`add_compile_options` and :command:`target_compile_options`.
On invocations driving linking, they will be passed before before flags
added by commands such as :command:`add_link_options` and
:command:`target_link_options`.