|
|
@@ -71,6 +71,14 @@ The root object recognizes the following fields:
|
|
|
|
|
|
An optional array of `Configure Preset`_ objects.
|
|
|
|
|
|
+``buildPresets``
|
|
|
+
|
|
|
+ An optional array of `Build Preset`_ objects.
|
|
|
+
|
|
|
+``testPresets``
|
|
|
+
|
|
|
+ An optional array of `Test Preset`_ objects.
|
|
|
+
|
|
|
Configure Preset
|
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
|
|
@@ -289,6 +297,489 @@ that may contain the following fields:
|
|
|
An optional boolean. Setting this to ``true`` is equivalent to passing
|
|
|
``--debug-find`` on the command line.
|
|
|
|
|
|
+Build Preset
|
|
|
+^^^^^^^^^^^^
|
|
|
+
|
|
|
+Each entry of the ``buildPresets`` array is a JSON object
|
|
|
+that may contain the following fields:
|
|
|
+
|
|
|
+``name``
|
|
|
+
|
|
|
+ A required string representing the machine-friendly name of the preset.
|
|
|
+ This identifier is used in the ``--preset`` argument. There must not be
|
|
|
+ two presets (configure, build, or test) in the union of
|
|
|
+ ``CMakePresets.json`` and ``CMakeUserPresets.json`` in the same
|
|
|
+ directory with the same name.
|
|
|
+
|
|
|
+``hidden``
|
|
|
+
|
|
|
+ An optional boolean specifying whether or not a preset should be hidden.
|
|
|
+ If a preset is hidden, it cannot be used in the ``--preset`` argument
|
|
|
+ and does not have to have a valid ``configurePreset``, even from
|
|
|
+ inheritance. ``hidden`` presets are intended to be used as a base for
|
|
|
+ other presets to inherit via the ``inherits`` field.
|
|
|
+
|
|
|
+``inherits``
|
|
|
+
|
|
|
+ An optional array of strings representing the names of presets to
|
|
|
+ inherit from. 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`` list
|
|
|
+ will be preferred. Presets in ``CMakePresets.json`` may not inherit from
|
|
|
+ presets in ``CMakeUserPresets.json``.
|
|
|
+
|
|
|
+ This field can also be a string, which is equivalent to an array
|
|
|
+ containing one string.
|
|
|
+
|
|
|
+``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.
|
|
|
+
|
|
|
+``displayName``
|
|
|
+
|
|
|
+ An optional string with a human-friendly name of the preset.
|
|
|
+
|
|
|
+``description``
|
|
|
+
|
|
|
+ An optional string with a human-friendly description of the preset.
|
|
|
+
|
|
|
+``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}``.)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+``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 tree directory is inferred from the
|
|
|
+ configure preset.
|
|
|
+
|
|
|
+``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.
|
|
|
+
|
|
|
+``jobs``
|
|
|
+
|
|
|
+ An optional integer. Equivalent to passing ``--parallel`` or ``-j`` on
|
|
|
+ the command line.
|
|
|
+
|
|
|
+``targets``
|
|
|
+
|
|
|
+ An optional string or array of strings. Equivalent to passing
|
|
|
+ ``--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.
|
|
|
+
|
|
|
+``configuration``
|
|
|
+
|
|
|
+ An optional string. Equivalent to passing ``--config`` on the command
|
|
|
+ line.
|
|
|
+
|
|
|
+``cleanFirst``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--clean-first`` on
|
|
|
+ the command line.
|
|
|
+
|
|
|
+``verbose``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--verbose`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+``nativeToolOptions``
|
|
|
+
|
|
|
+ An optional array of strings. Equivalent to passing options after ``--``
|
|
|
+ on the command line. The array values support macro expansion.
|
|
|
+
|
|
|
+Test Preset
|
|
|
+^^^^^^^^^^^
|
|
|
+
|
|
|
+Each entry of the ``testPresets`` array is a JSON object
|
|
|
+that may contain the following fields:
|
|
|
+
|
|
|
+``name``
|
|
|
+
|
|
|
+ A required string representing the machine-friendly name of the preset.
|
|
|
+ This identifier is used in the ``--preset`` argument. There must not be
|
|
|
+ two presets (configure, build, or test) in the union of
|
|
|
+ ``CMakePresets.json`` and ``CMakeUserPresets.json`` in the same
|
|
|
+ directory with the same name.
|
|
|
+
|
|
|
+``hidden``
|
|
|
+
|
|
|
+ An optional boolean specifying whether or not a preset should be hidden.
|
|
|
+ If a preset is hidden, it cannot be used in the ``--preset`` argument
|
|
|
+ and does not have to have a valid ``configurePreset``, even from
|
|
|
+ inheritance. ``hidden`` presets are intended to be used as a base for
|
|
|
+ other presets to inherit via the ``inherits`` field.
|
|
|
+
|
|
|
+``inherits``
|
|
|
+
|
|
|
+ An optional array of strings representing the names of presets to
|
|
|
+ inherit from. 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`` list
|
|
|
+ will be preferred. Presets in ``CMakePresets.json`` may not inherit from
|
|
|
+ presets in ``CMakeUserPresets.json``.
|
|
|
+
|
|
|
+ This field can also be a string, which is equivalent to an array
|
|
|
+ containing one string.
|
|
|
+
|
|
|
+``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.
|
|
|
+
|
|
|
+``displayName``
|
|
|
+
|
|
|
+ An optional string with a human-friendly name of the preset.
|
|
|
+
|
|
|
+``description``
|
|
|
+
|
|
|
+ An optional string with a human-friendly description of the preset.
|
|
|
+
|
|
|
+``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}``.)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+``configurePreset``
|
|
|
+
|
|
|
+ An optional string specifying the name of a configure preset to
|
|
|
+ associate with this test preset. If ``configurePreset`` is not
|
|
|
+ specified, it must be inherited from the inherits preset (unless this
|
|
|
+ preset is hidden). The build tree directory is inferred from the
|
|
|
+ configure preset.
|
|
|
+
|
|
|
+``inheritConfigureEnvironment``
|
|
|
+
|
|
|
+ An optional boolean that defaults to true. If true, the environment
|
|
|
+ variables from the associated configure preset are inherited after all
|
|
|
+ inherited test preset environments, but before environment variables
|
|
|
+ explicitly specified in this test preset.
|
|
|
+
|
|
|
+``configuration``
|
|
|
+
|
|
|
+ An optional string. Equivalent to passing ``--build-config`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+``overwriteConfigurationFile``
|
|
|
+
|
|
|
+ An optional array of configuration options to overwrite options
|
|
|
+ specified in the CTest configuration file. Equivalent to passing
|
|
|
+ ``--overwrite`` for each value in the array. The array values
|
|
|
+ support macro expansion.
|
|
|
+
|
|
|
+``output``
|
|
|
+
|
|
|
+ An optional object specifying output options. The object may contain the
|
|
|
+ following fields.
|
|
|
+
|
|
|
+ ``shortProgress``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--progress`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``verbosity``
|
|
|
+
|
|
|
+ An optional string specifying verbosity level. Must be one of the
|
|
|
+ following:
|
|
|
+
|
|
|
+ ``default``
|
|
|
+
|
|
|
+ Equivalent to passing no verbosity flags on the command line.
|
|
|
+
|
|
|
+ ``verbose``
|
|
|
+
|
|
|
+ Equivalent to passing ``--verbose`` on the command line.
|
|
|
+
|
|
|
+ ``extra``
|
|
|
+
|
|
|
+ Equivalent to passing ``--extra-verbose`` on the command line.
|
|
|
+
|
|
|
+ ``debug``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--debug`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``outputOnFailure``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing
|
|
|
+ ``--output-on-failure`` on the command line.
|
|
|
+
|
|
|
+ ``quiet``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--quiet`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``outputLogFile``
|
|
|
+
|
|
|
+ An optional string specifying a path to a log file. Equivalent to
|
|
|
+ passing ``--output-log`` on the command line. This field supports
|
|
|
+ macro expansion.
|
|
|
+
|
|
|
+ ``labelSummary``
|
|
|
+
|
|
|
+ An optional bool. If false, equivalent to passing
|
|
|
+ ``--no-label-summary`` on the command line.
|
|
|
+
|
|
|
+ ``subprojectSummary``
|
|
|
+
|
|
|
+ An optional bool. If false, equivalent to passing
|
|
|
+ ``--no-subproject-summary`` on the command line.
|
|
|
+
|
|
|
+ ``maxPassedTestOutputSize``
|
|
|
+
|
|
|
+ An optional integer specifying the maximum output for passed tests in
|
|
|
+ bytes. Equivalent to passing ``--test-output-size-passed`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``maxFailedTestOutputSize``
|
|
|
+
|
|
|
+ An optional integer specifying the maximum output for failed tests in
|
|
|
+ bytes. Equivalent to passing ``--test-output-size-failed`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``maxTestNameWidth``
|
|
|
+
|
|
|
+ An optional integer specifying the maximum width of a test name to
|
|
|
+ output. Equivalent to passing ``--max-width`` on the command line.
|
|
|
+
|
|
|
+``filter``
|
|
|
+
|
|
|
+ An optional object specifying how to filter the tests to run. The object
|
|
|
+ may contain the following fields.
|
|
|
+
|
|
|
+ ``include``
|
|
|
+
|
|
|
+ An optional object specifying which tests to include. The object may
|
|
|
+ contain the following fields.
|
|
|
+
|
|
|
+ ``name``
|
|
|
+
|
|
|
+ An optional string specifying a regex for test names. Equivalent to
|
|
|
+ passing ``--tests-regex`` on the command line. This field supports
|
|
|
+ macro expansion.
|
|
|
+
|
|
|
+
|
|
|
+ ``label``
|
|
|
+
|
|
|
+ An optional string specifying a regex for test labels. Equivalent to
|
|
|
+ passing ``--label-regex`` on the command line. This field supports
|
|
|
+ macro expansion.
|
|
|
+
|
|
|
+ ``useUnion``
|
|
|
+
|
|
|
+ An optional bool. Equivalent to passing ``--union`` on the command
|
|
|
+ line.
|
|
|
+
|
|
|
+ ``index``
|
|
|
+
|
|
|
+ An optional object specifying tests to include by test index. The
|
|
|
+ object may contain the following fields. Can also be an optional
|
|
|
+ string specifying a file with the command line syntax for
|
|
|
+ ``--tests-information``. If specified as a string, this field
|
|
|
+ supports macro expansion.
|
|
|
+
|
|
|
+ ``start``
|
|
|
+
|
|
|
+ An optional integer specifying a test index to start testing at.
|
|
|
+
|
|
|
+ ``end``
|
|
|
+
|
|
|
+ An optional integer specifying a test index to stop testing at.
|
|
|
+
|
|
|
+ ``stride``
|
|
|
+
|
|
|
+ An optional integer specifying the increment.
|
|
|
+
|
|
|
+ ``specificTests``
|
|
|
+
|
|
|
+ An optional array of integers specifying specific test indices to
|
|
|
+ run.
|
|
|
+
|
|
|
+ ``exclude``
|
|
|
+
|
|
|
+ An optional object specifying which tests to exclude. The object may
|
|
|
+ contain the following fields.
|
|
|
+
|
|
|
+ ``name``
|
|
|
+
|
|
|
+ An optional string specifying a regex for test names. Equivalent to
|
|
|
+ passing ``--exclude-regex`` on the command line. This field supports
|
|
|
+ macro expansion.
|
|
|
+
|
|
|
+ ``label``
|
|
|
+
|
|
|
+ An optional string specifying a regex for test labels. Equivalent to
|
|
|
+ passing ``--label-exclude`` on the command line. This field supports
|
|
|
+ macro expansion.
|
|
|
+
|
|
|
+ ``fixtures``
|
|
|
+
|
|
|
+ An optional object specifying which fixtures to exclude from adding
|
|
|
+ tests. The object may contain the following fields.
|
|
|
+
|
|
|
+ ``any``
|
|
|
+
|
|
|
+ An optional string specifying a regex for text fixtures to exclude
|
|
|
+ from adding any tests. Equivalent to ``--fixture-exclude-any`` on
|
|
|
+ the command line. This field supports macro expansion.
|
|
|
+
|
|
|
+ ``setup``
|
|
|
+
|
|
|
+ An optional string specifying a regex for text fixtures to exclude
|
|
|
+ from adding setup tests. Equivalent to ``--fixture-exclude-setup``
|
|
|
+ on the command line. This field supports macro expansion.
|
|
|
+
|
|
|
+ ``cleanup``
|
|
|
+
|
|
|
+ An optional string specifying a regex for text fixtures to exclude
|
|
|
+ from adding cleanup tests. Equivalent to
|
|
|
+ ``--fixture-exclude-cleanup`` on the command line. This field
|
|
|
+ supports macro expansion.
|
|
|
+
|
|
|
+``execution``
|
|
|
+
|
|
|
+ An optional object specifying options for test execution. The object may
|
|
|
+ contain the following fields.
|
|
|
+
|
|
|
+ ``stopOnFailure``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--stop-on-failure``
|
|
|
+ on the command line.
|
|
|
+
|
|
|
+ ``enableFailover``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``-F`` on the command
|
|
|
+ line.
|
|
|
+
|
|
|
+ ``jobs``
|
|
|
+
|
|
|
+ An optional integer. Equivalent to passing ``--parallel`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``resourceSpecFile``
|
|
|
+
|
|
|
+ An optional string. Equivalent to passing ``--resource-spec-file`` on
|
|
|
+ the command line. This field supports macro expansion.
|
|
|
+
|
|
|
+ ``testLoad``
|
|
|
+
|
|
|
+ An optional integer. Equivalent to passing ``--test-load`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``showOnly``
|
|
|
+
|
|
|
+ An optional string. Equivalent to passing ``--show-only`` on the
|
|
|
+ command line. The string must be one of the following values:
|
|
|
+
|
|
|
+ ``human``
|
|
|
+
|
|
|
+ ``json-v1``
|
|
|
+
|
|
|
+ ``rerunFailed``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--rerun-failed`` on
|
|
|
+ the command line.
|
|
|
+
|
|
|
+ ``repeat``
|
|
|
+
|
|
|
+ An optional object specifying how to repeat tests. Equivalent to
|
|
|
+ passing ``--repeat`` on the command line. The object must have the
|
|
|
+ following fields.
|
|
|
+
|
|
|
+ ``mode``
|
|
|
+
|
|
|
+ A required string. Must be one of the following values:
|
|
|
+
|
|
|
+ ``until-fail``
|
|
|
+
|
|
|
+ ``until-pass``
|
|
|
+
|
|
|
+ ``after-timeout``
|
|
|
+
|
|
|
+ ``count``
|
|
|
+
|
|
|
+ A required integer.
|
|
|
+
|
|
|
+ ``interactiveDebugging``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing
|
|
|
+ ``--interactive-debug-mode 1`` on the command line. If false,
|
|
|
+ equivalent to passing ``--interactive-debug-mode 0`` on the command
|
|
|
+ line.
|
|
|
+
|
|
|
+ ``scheduleRandom``
|
|
|
+
|
|
|
+ An optional bool. If true, equivalent to passing ``--schedule-random``
|
|
|
+ on the command line.
|
|
|
+
|
|
|
+ ``timeout``
|
|
|
+
|
|
|
+ An optional integer. Equivalent to passing ``--timeout`` on the
|
|
|
+ command line.
|
|
|
+
|
|
|
+ ``noTestsAction``
|
|
|
+
|
|
|
+ An optional string specifying the behavior if no tests are found. Must
|
|
|
+ be one of the following values:
|
|
|
+
|
|
|
+ ``default``
|
|
|
+
|
|
|
+ Equivalent to not passing any value on the command line.
|
|
|
+
|
|
|
+ ``error``
|
|
|
+
|
|
|
+ Equivalent to passing ``--no-tests=error`` on the command line.
|
|
|
+
|
|
|
+ ``ignore``
|
|
|
+
|
|
|
+ Equivalent to passing ``--no-tests=ignore`` on the command line.
|
|
|
+
|
|
|
Macro Expansion
|
|
|
^^^^^^^^^^^^^^^
|
|
|
|
|
|
@@ -326,7 +817,9 @@ Recognized macros include:
|
|
|
|
|
|
``${generator}``
|
|
|
|
|
|
- Generator specified in the preset's ``generator`` field.
|
|
|
+ Generator specified in the preset's ``generator`` field. For build and
|
|
|
+ test presets, this will evaluate to the generator specified by
|
|
|
+ ``configurePreset``.
|
|
|
|
|
|
``${dollar}``
|
|
|
|