| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- 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>`_
|