mirror of
https://github.com/reactos/CMake.git
synced 2024-11-28 05:50:42 +00:00
Precompile headers: Update documentation
This commit is contained in:
parent
5772930164
commit
8da78d4efe
56
Help/command/target_precompile_headers.rst
Normal file
56
Help/command/target_precompile_headers.rst
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
target_precompile_headers
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Add a list of header files to precompile.
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
target_precompile_headers(<target>
|
||||||
|
<INTERFACE|PUBLIC|PRIVATE> [header1...]
|
||||||
|
[<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])
|
||||||
|
|
||||||
|
Adds header files to :prop_tgt:`PRECOMPILE_HEADERS` or
|
||||||
|
:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` target properties.
|
||||||
|
|
||||||
|
Precompiling header files can speed up compilation by creating a partially
|
||||||
|
processed version of some header files, and then using that version during
|
||||||
|
compilations rather than repeatedly parsing the original headers.
|
||||||
|
|
||||||
|
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>`.
|
||||||
|
|
||||||
|
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:`PRECOMPILE_HEADERS` property of
|
||||||
|
``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
|
||||||
|
:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` property of ``<target>``.
|
||||||
|
(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
|
||||||
|
Repeated calls for the same ``<target>`` append items in the order called.
|
||||||
|
|
||||||
|
Arguments to ``target_precompile_headers`` may use "generator expressions"
|
||||||
|
with the syntax ``$<...>``.
|
||||||
|
See the :manual:`cmake-generator-expressions(7)` manual for available
|
||||||
|
expressions. See the :manual:`cmake-compile-features(7)` manual for
|
||||||
|
information on compile features and a list of supported compilers.
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
target_precompile_headers(<target>
|
||||||
|
PUBLIC
|
||||||
|
"project_header.h"
|
||||||
|
PRIVATE
|
||||||
|
<unordered_map>
|
||||||
|
)
|
||||||
|
|
||||||
|
Header files will be double quoted if they are not specified with double
|
||||||
|
quotes or angle brackets.
|
||||||
|
|
||||||
|
See Also
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
For disabling precompile headers for specific targets there is the
|
||||||
|
property :prop_tgt:`DISABLE_PRECOMPILE_HEADERS`.
|
||||||
|
|
||||||
|
For skipping certain source files there is the source file property
|
||||||
|
:prop_sf:`SKIP_PRECOMPILE_HEADERS`.
|
@ -112,6 +112,7 @@ These commands are available only in CMake projects.
|
|||||||
/command/target_link_directories
|
/command/target_link_directories
|
||||||
/command/target_link_libraries
|
/command/target_link_libraries
|
||||||
/command/target_link_options
|
/command/target_link_options
|
||||||
|
/command/target_precompile_headers
|
||||||
/command/target_sources
|
/command/target_sources
|
||||||
/command/try_compile
|
/command/try_compile
|
||||||
/command/try_run
|
/command/try_run
|
||||||
|
@ -181,6 +181,7 @@ Properties on Targets
|
|||||||
/prop_tgt/DEFINE_SYMBOL
|
/prop_tgt/DEFINE_SYMBOL
|
||||||
/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY
|
/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY
|
||||||
/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES
|
/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES
|
||||||
|
/prop_tgt/DISABLE_PRECOMPILE_HEADERS
|
||||||
/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION
|
/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION
|
||||||
/prop_tgt/EchoString
|
/prop_tgt/EchoString
|
||||||
/prop_tgt/ENABLE_EXPORTS
|
/prop_tgt/ENABLE_EXPORTS
|
||||||
@ -240,6 +241,7 @@ Properties on Targets
|
|||||||
/prop_tgt/INTERFACE_LINK_DIRECTORIES
|
/prop_tgt/INTERFACE_LINK_DIRECTORIES
|
||||||
/prop_tgt/INTERFACE_LINK_LIBRARIES
|
/prop_tgt/INTERFACE_LINK_LIBRARIES
|
||||||
/prop_tgt/INTERFACE_LINK_OPTIONS
|
/prop_tgt/INTERFACE_LINK_OPTIONS
|
||||||
|
/prop_tgt/INTERFACE_PRECOMPILE_HEADERS
|
||||||
/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE
|
/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE
|
||||||
/prop_tgt/INTERFACE_SOURCES
|
/prop_tgt/INTERFACE_SOURCES
|
||||||
/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
|
/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
|
||||||
@ -295,6 +297,7 @@ Properties on Targets
|
|||||||
/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG
|
/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG
|
||||||
/prop_tgt/PDB_OUTPUT_DIRECTORY
|
/prop_tgt/PDB_OUTPUT_DIRECTORY
|
||||||
/prop_tgt/POSITION_INDEPENDENT_CODE
|
/prop_tgt/POSITION_INDEPENDENT_CODE
|
||||||
|
/prop_tgt/PRECOMPILE_HEADERS
|
||||||
/prop_tgt/PREFIX
|
/prop_tgt/PREFIX
|
||||||
/prop_tgt/PRIVATE_HEADER
|
/prop_tgt/PRIVATE_HEADER
|
||||||
/prop_tgt/PROJECT_LABEL
|
/prop_tgt/PROJECT_LABEL
|
||||||
@ -445,6 +448,7 @@ Properties on Source Files
|
|||||||
/prop_sf/SKIP_AUTOMOC
|
/prop_sf/SKIP_AUTOMOC
|
||||||
/prop_sf/SKIP_AUTORCC
|
/prop_sf/SKIP_AUTORCC
|
||||||
/prop_sf/SKIP_AUTOUIC
|
/prop_sf/SKIP_AUTOUIC
|
||||||
|
/prop_sf/SKIP_PRECOMPILE_HEADERS
|
||||||
/prop_sf/Swift_DEPENDENCIES_FILE
|
/prop_sf/Swift_DEPENDENCIES_FILE
|
||||||
/prop_sf/Swift_DIAGNOSTICS_FILE
|
/prop_sf/Swift_DIAGNOSTICS_FILE
|
||||||
/prop_sf/SYMBOLIC
|
/prop_sf/SYMBOLIC
|
||||||
|
@ -355,6 +355,7 @@ Variables that Control the Build
|
|||||||
/variable/CMAKE_CUDA_SEPARABLE_COMPILATION
|
/variable/CMAKE_CUDA_SEPARABLE_COMPILATION
|
||||||
/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
|
/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
|
||||||
/variable/CMAKE_DEBUG_POSTFIX
|
/variable/CMAKE_DEBUG_POSTFIX
|
||||||
|
/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS
|
||||||
/variable/CMAKE_ENABLE_EXPORTS
|
/variable/CMAKE_ENABLE_EXPORTS
|
||||||
/variable/CMAKE_EXE_LINKER_FLAGS
|
/variable/CMAKE_EXE_LINKER_FLAGS
|
||||||
/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG
|
/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG
|
||||||
|
13
Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
Normal file
13
Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
SKIP_PRECOMPILE_HEADERS
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Is this source file skipped by :prop_tgt:`PRECOMPILE_HEADERS` feature.
|
||||||
|
|
||||||
|
This property helps with build problems that one would run into
|
||||||
|
when using the :prop_tgt:`PRECOMPILE_HEADERS` feature.
|
||||||
|
|
||||||
|
One example would be the usage of Objective-C (*.m) files, and
|
||||||
|
Objective-C++ (*.mm) files, which lead to compilation failure
|
||||||
|
because they are treated (in case of Ninja / Makefile generator)
|
||||||
|
as C, and CXX respectively. The precompile headers are not
|
||||||
|
compatible between languages.
|
8
Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
Normal file
8
Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
DISABLE_PRECOMPILE_HEADERS
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Disables the precompilation of header files specified by
|
||||||
|
:prop_tgt:`PRECOMPILE_HEADERS` property.
|
||||||
|
|
||||||
|
If the property is not set, CMake will use the value provided
|
||||||
|
by :variable:`CMAKE_DISABLE_PRECOMPILE_HEADERS`.
|
14
Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
Normal file
14
Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
INTERFACE_PRECOMPILE_HEADERS
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
List of interface header files to precompile into consuming targets.
|
||||||
|
|
||||||
|
Targets may populate this property to publish the header files
|
||||||
|
for consuming targets to precompile. The :command:`target_precompile_headers`
|
||||||
|
command populates this property with values given to the ``PUBLIC`` and
|
||||||
|
``INTERFACE`` keywords. Projects may also get and set the property directly.
|
||||||
|
|
||||||
|
Contents of ``INTERFACE_PRECOMPILE_HEADERS`` 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.
|
12
Help/prop_tgt/PRECOMPILE_HEADERS.rst
Normal file
12
Help/prop_tgt/PRECOMPILE_HEADERS.rst
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
PRECOMPILE_HEADERS
|
||||||
|
------------------
|
||||||
|
|
||||||
|
List of header files to precompile.
|
||||||
|
|
||||||
|
This property holds a :ref:`semicolon-separated list <CMake Language Lists>`
|
||||||
|
of header files to precompile specified so far for its target.
|
||||||
|
Use the :command:`target_precompile_headers` command to append more header
|
||||||
|
files.
|
||||||
|
|
||||||
|
This property supports
|
||||||
|
:manual:`generator expressions <cmake-generator-expressions(7)>`.
|
6
Help/release/dev/precompile-headers.rst
Normal file
6
Help/release/dev/precompile-headers.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Precompile Headers
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* The :prop_tgt:`PRECOMPILE_HEADERS` target property was added to tell
|
||||||
|
generators to use a list of precompile headers for faster compilation
|
||||||
|
times.
|
6
Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
Normal file
6
Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
CMAKE_DISABLE_PRECOMPILE_HEADERS
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Default value for :prop_tgt:`DISABLE_PRECOMPILE_HEADERS` of targets.
|
||||||
|
|
||||||
|
By default ``CMAKE_DISABLE_PRECOMPILE_HEADERS`` is ``OFF``.
|
Loading…
Reference in New Issue
Block a user