mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-04 14:50:23 +00:00
112 lines
3.4 KiB
ReStructuredText
112 lines
3.4 KiB
ReStructuredText
FASTBuild
|
|
=========
|
|
|
|
.. versionadded:: 4.2
|
|
|
|
Generates a ``fbuild.bff`` file, which can be used to build the project with
|
|
`FASTBuild <https://www.fastbuild.org/docs/home.html>`_.
|
|
|
|
Usage
|
|
-----
|
|
|
|
Specify the generator when invoking :manual:`cmake(1)`:
|
|
|
|
.. code-block:: shell
|
|
|
|
cmake [<options>] -G FASTBuild -B <path-to-build> [-S <path-to-source>]
|
|
|
|
This writes a FASTBuild configuration file named ``fbuild.bff`` into
|
|
``<path-to-build>``.
|
|
|
|
.. note::
|
|
|
|
This generator also produces IDE project files for Visual Studio and Xcode,
|
|
which are placed under:
|
|
|
|
* ``<path-to-build>/VisualStudio`` - Visual Studio solution and projects
|
|
* ``<path-to-build>/XCode`` - Xcode workspace and projects
|
|
|
|
These IDE files can be generated by building ``xcode`` or ``solution`` targets
|
|
and will build using FASTBuild as the backend.
|
|
|
|
Caching
|
|
-------
|
|
|
|
To enable FASTBuild caching, set the cache path using the
|
|
:variable:`CMAKE_FASTBUILD_CACHE_PATH` variable or the
|
|
``FASTBUILD_CACHE_PATH`` environment variable.
|
|
|
|
Then build with the ``-cache`` flag:
|
|
|
|
.. code-block:: console
|
|
|
|
cmake --build <path-to-build> -- -cache
|
|
|
|
Compiler Behavior Variables
|
|
---------------------------
|
|
|
|
The following variables control how compiler nodes are emitted in the generated
|
|
``fbuild.bff``. These settings may affect build determinism, debug info paths,
|
|
include handling, and compiler argument formatting:
|
|
|
|
* :variable:`CMAKE_FASTBUILD_ALLOW_RESPONSE_FILE`
|
|
* :variable:`CMAKE_FASTBUILD_CLANG_GCC_UPDATE_XLANG_ARG`
|
|
* :variable:`CMAKE_FASTBUILD_CLANG_REWRITE_INCLUDES`
|
|
* :variable:`CMAKE_FASTBUILD_COMPILER_EXTRA_FILES`
|
|
* :variable:`CMAKE_FASTBUILD_FORCE_RESPONSE_FILE`
|
|
* :variable:`CMAKE_FASTBUILD_SOURCE_MAPPING`
|
|
* :variable:`CMAKE_FASTBUILD_USE_DETERMINISTIC_PATHS`
|
|
* :variable:`CMAKE_FASTBUILD_USE_LIGHTCACHE`
|
|
* :variable:`CMAKE_FASTBUILD_USE_RELATIVE_PATHS`
|
|
|
|
Configuration Variables
|
|
-----------------------
|
|
|
|
The following variables can be used to configure this generator:
|
|
|
|
* :variable:`CMAKE_FASTBUILD_CACHE_PATH`
|
|
* :variable:`CMAKE_FASTBUILD_CAPTURE_SYSTEM_ENV`
|
|
* :variable:`CMAKE_FASTBUILD_ENV_OVERRIDES`
|
|
* :variable:`CMAKE_FASTBUILD_IDE_ARGS`
|
|
* :variable:`CMAKE_FASTBUILD_TRACK_BYPRODUCTS_AS_OUTPUT`
|
|
* :variable:`CMAKE_FASTBUILD_VERBOSE_GENERATOR`
|
|
|
|
Target Properties
|
|
-----------------
|
|
|
|
The following target properties can be used to fine-tune behavior on a
|
|
per-target basis:
|
|
|
|
* :prop_tgt:`FASTBUILD_CACHING` -
|
|
disables caching for a specific target.
|
|
* :prop_tgt:`FASTBUILD_DISTRIBUTION` -
|
|
disables distributed compilation for a specific target.
|
|
|
|
Notes
|
|
-----
|
|
|
|
* This generator does not support directories as outputs of custom commands.
|
|
If you do specify a directory as an output, it should be marked with the
|
|
``SYMBOLIC`` property to avoid incorrect behavior.
|
|
* It is highly advised to use custom commands with only one output.
|
|
If multiple outputs are specified, the generator will emit an additional
|
|
rule to check the outputs at build time. This adds overhead and is necessary
|
|
because FASTBuild natively supports only a single output per custom step.
|
|
|
|
Example
|
|
-------
|
|
|
|
.. code-block:: shell
|
|
|
|
cmake [<options>] -G FASTBuild -B <path-to-build> -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build <path-to-build> --target my_app
|
|
|
|
This generates ``fbuild.bff`` in ``<path-to-build>`` and uses FASTBuild
|
|
to build the ``my_app`` target.
|
|
|
|
See Also
|
|
--------
|
|
|
|
* :manual:`cmake-generators(7)`
|
|
* `FASTBuild Documentation <https://www.fastbuild.org/docs/documentation.html>`_
|