.. This file was generated by Utilities/Scripts/regenerate-presets.py
   from Help/manual/presets/schema.yaml. Do not edit.

.. _`CMakePresets.buildPresets.name`:

``name``
  A required string representing the machine-friendly name of the
  preset. This identifier is used in the
  :option:`cmake --build --preset <cmake--build --preset>` option.
  There must not be two build presets in the union of
  ``CMakePresets.json`` and ``CMakeUserPresets.json`` in the same
  directory with the same name. However, a build preset may have the
  same name as a configure, test, package, or workflow preset.

.. _`CMakePresets.buildPresets.hidden`:

``hidden``
  An optional boolean specifying whether or not a preset should be
  hidden. If a preset is hidden, it cannot be used in the
  :cmake-build-option:`--preset` argument and does not have to have a
  valid :preset:`buildPresets.configurePreset`, even from
  inheritance. ``hidden`` presets are intended to be used as a base
  for other presets to inherit via the
  :preset:`buildPresets.inherits` field.

.. _`CMakePresets.buildPresets.inherits`:

``inherits``
  An optional array of strings representing the names of presets from which
  to inherit. This field can also be a string, which is equivalent to an
  array containing one string.

  The preset will inherit all of the fields from the ``inherits`` presets
  by default (except ``name``, ``hidden``, ``inherits``, ``description``,
  and ``displayName``), but can override them as desired. If multiple
  ``inherits`` presets provide conflicting values for the same field, the
  earlier preset in the ``inherits`` array will be preferred.

  A preset can only inherit from another preset that is defined in the same
  file or in one of the files it includes (directly or indirectly). Presets
  in ``CMakePresets.json`` may not inherit from presets in
  ``CMakeUserPresets.json``.

.. _`CMakePresets.buildPresets.condition`:

``condition``
  .. presets-versionadded:: 3

  An optional `Condition`_ object.

.. _`CMakePresets.buildPresets.vendor`:

``vendor``
  An optional map containing vendor-specific information. CMake does not
  interpret the contents of this field except to verify that it is a map if
  it does exist. However, it should follow the same conventions as the
  root-level ``vendor`` field. If vendors use their own per-preset
  ``vendor`` field, they should implement inheritance in a sensible manner
  when appropriate.

.. _`CMakePresets.buildPresets.displayName`:

``displayName``
  An optional string with a human-friendly name of the preset.

.. _`CMakePresets.buildPresets.description`:

``description``
  An optional string with a human-friendly description of the preset.

.. _`CMakePresets.buildPresets.environment`:

``environment``
  An optional map of environment variables. The key is the variable name
  (which may not be an empty string), and the value is either ``null`` or a
  string representing the value of the variable. Each variable is set
  regardless of whether or not a value was given to it by the process's
  environment.

  This field supports `macro expansion`_, and environment variables in this
  map may reference each other, and may be listed in any order, as long as
  such references do not cause a cycle (for example, if ``ENV_1`` is
  ``$env{ENV_2}``, ``ENV_2`` may not be ``$env{ENV_1}``). ``$penv{NAME}``
  allows one to prepend or append values to existing environment variables
  by accessing only values from the parent environment.

  Environment variables are inherited through the ``inherits`` field, and
  the preset's environment will be the union of its own ``environment`` and
  the ``environment`` from all its parents. If multiple presets in this
  union define the same variable, the standard rules of ``inherits`` are
  applied. Setting a variable to ``null`` causes it to not be set, even if
  a value was inherited from another preset.

  .. note::

    For a CMake project using :module:`ExternalProject` with a
    configuration preset having environment variables needed in the
    ExternalProject, use a build preset that inherits that
    configuration preset or the ExternalProject will not have the
    environment variables set in the configuration preset. Example:
    suppose the host defaults to one compiler (say Clang) and the user
    wishes to use another compiler (say GCC). Set configuration preset
    environment variables :envvar:`CC` and :envvar:`CXX` and use a
    build preset that inherits that configuration preset. Otherwise the
    ExternalProject may use a different (system default) compiler than
    the top-level CMake project.


.. _`CMakePresets.buildPresets.configurePreset`:

``configurePreset``
  An optional string specifying the name of a configure preset to
  associate with this build preset. If ``configurePreset`` is not
  specified, it must be inherited from the inherits preset (unless
  this preset is hidden). The build directory is inferred from the
  configure preset, so the build will take place in the same
  ``binaryDir`` that the configuration did.

.. _`CMakePresets.buildPresets.inheritConfigureEnvironment`:

``inheritConfigureEnvironment``
  An optional boolean that defaults to ``true``. If ``true``, the
  environment variables from the associated configure preset are
  inherited after all inherited build preset environments, but before
  environment variables explicitly specified in this build preset.

.. _`CMakePresets.buildPresets.jobs`:

``jobs``
  An optional integer. Equivalent to passing
  :cmake-build-option:`--parallel` or ``-j`` on the command line.
  If the value is ``0``, it is equivalent to passing ``--parallel``
  with ``<jobs>`` omitted; alternatively, one can define the
  environment variable :envvar:`CMAKE_BUILD_PARALLEL_LEVEL` as an
  empty string using the ``environment`` field.

  .. versionchanged:: 4.3

    This field does not accept negative integer values, regardless of
    the version in the presets file.

.. _`CMakePresets.buildPresets.targets`:

``targets``
  An optional string or array of strings. Equivalent to passing
  :cmake-build-option:`--target` or ``-t`` on the command line.
  Vendors may ignore the targets property or hide build presets that
  explicitly specify targets. This field supports `macro expansion`_.

.. _`CMakePresets.buildPresets.configuration`:

``configuration``
  An optional string. Equivalent to passing
  :cmake-build-option:`--config` on the command line.

.. _`CMakePresets.buildPresets.cleanFirst`:

``cleanFirst``
  An optional bool. If ``true``, equivalent to passing
  :cmake-build-option:`--clean-first` on the command line.

.. _`CMakePresets.buildPresets.resolvePackageReferences`:

``resolvePackageReferences``
  .. presets-versionadded:: 4

  An optional string that specifies the package resolve mode.

  Package references are used to define dependencies to packages from
  external package managers. Currently only NuGet in combination with
  the :ref:`Visual Studio generators` is supported. If there are no
  targets that define package references, this option does nothing.
  Valid values are:

  ``on``
    Causes package references to be resolved before attempting a
    build.

  ``off``
    Package references will not be resolved. Note that this may cause
    errors in some build environments, such as .NET SDK style
    projects.

  ``only``
    Only resolve package references, but do not perform a build.

  .. note::

    The command line parameter
    :cmake-build-option:`--resolve-package-references`
    will take priority over this setting. If the command line
    parameter is not provided and this setting is not specified, an
    environment-specific cache variable will be evaluated to decide,
    if package restoration should be performed.

    When using the :ref:`Visual Studio generators`,
    package  references are defined using the
    :prop_tgt:`VS_PACKAGE_REFERENCES` property. Package references
    are restored using NuGet. It can be disabled by setting the
    :variable:`CMAKE_VS_NUGET_PACKAGE_RESTORE` variable to ``OFF``.
    This can also be done from within a configure preset.

.. _`CMakePresets.buildPresets.verbose`:

``verbose``
  An optional boolean. If ``true``, equivalent to passing
  :cmake-build-option:`--verbose` on the command line.

.. _`CMakePresets.buildPresets.nativeToolOptions`:

``nativeToolOptions``
  An optional array of strings. Equivalent to passing options after
  :cmake-build-option:`--` on the command line. The array values
  support `macro expansion`_.
