Merge topic 'compile_opts'

448e2d7a9d Help: Provide cross-references between compiler settings
1f697b3991 Help: COMPILE_OPTIONS: bundle cross refs, add example

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4749
This commit is contained in:
Brad King
2020-05-18 16:27:19 +00:00
committed by Kitware Robot
3 changed files with 21 additions and 5 deletions

View File

@@ -46,3 +46,6 @@ to use the more specific commands :command:`add_compile_definitions`
and :command:`include_directories`.
The command :command:`target_compile_options` adds target-specific options.
The source file property :prop_sf:`COMPILE_OPTIONS` adds options to one
source file.

View File

@@ -46,3 +46,5 @@ to use the more specific commands :command:`target_compile_definitions`
and :command:`target_include_directories`.
For directory-wide settings, there is the command :command:`add_compile_options`.
For file-specific settings, there is the source file property :prop_sf:`COMPILE_OPTIONS`.

View File

@@ -5,9 +5,7 @@ List of additional options to pass to the compiler.
This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
and will be added to the list of compile flags when this
source file builds. Use :prop_sf:`COMPILE_DEFINITIONS` to pass
additional preprocessor definitions and :prop_sf:`INCLUDE_DIRECTORIES` to pass
additional include directories.
source file builds.
Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
@@ -16,6 +14,19 @@ does not support per-config per-source settings, so expressions
that depend on the build configuration are not allowed with that
generator.
.. note::
Usage example:
This property should be preferred over the :prop_sf:`COMPILE_FLAGS` property.
.. code-block:: cmake
set_source_files_properties(foo.cpp PROPERTIES COMPILE_OPTIONS "-Wno-unused-parameter;-Wno-missing-field-initializer")
Related properties:
* Prefer this property over :prop_sf:`COMPILE_FLAGS`.
* Use :prop_sf:`COMPILE_DEFINITIONS` to pass additional preprocessor definitions.
* Use :prop_sf:`INCLUDE_DIRECTORIES` to pass additional include directories.
Related commands:
* :command:`add_compile_options` for directory-wide settings
* :command:`target_compile_options` for target-specific settings