...
 
Commits (1068)

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -3,29 +3,27 @@ Checks: "-*,\ ...@@ -3,29 +3,27 @@ Checks: "-*,\
bugprone-*,\ bugprone-*,\
-bugprone-macro-parentheses,\ -bugprone-macro-parentheses,\
-bugprone-misplaced-widening-cast,\ -bugprone-misplaced-widening-cast,\
-bugprone-narrowing-conversions,\
-bugprone-too-small-loop-variable,\
google-readability-casting,\ google-readability-casting,\
misc-*,\ misc-*,\
-misc-incorrect-roundings,\ -misc-non-private-member-variables-in-classes,\
-misc-macro-parentheses,\
-misc-misplaced-widening-cast,\
-misc-static-assert,\ -misc-static-assert,\
modernize-*,\ modernize-*,\
-modernize-deprecated-headers,\ -modernize-avoid-c-arrays,\
-modernize-return-braced-init-list,\ -modernize-use-nodiscard,\
-modernize-use-auto,\
-modernize-use-noexcept,\ -modernize-use-noexcept,\
-modernize-use-transparent-functors,\ -modernize-use-transparent-functors,\
-modernize-use-using,\
performance-*,\ performance-*,\
-performance-inefficient-string-concatenation,\
readability-*,\ readability-*,\
-readability-function-size,\ -readability-function-size,\
-readability-identifier-naming,\ -readability-identifier-naming,\
-readability-implicit-bool-cast,\
-readability-implicit-bool-conversion,\ -readability-implicit-bool-conversion,\
-readability-inconsistent-declaration-parameter-name,\ -readability-inconsistent-declaration-parameter-name,\
-readability-magic-numbers,\
-readability-named-parameter,\ -readability-named-parameter,\
-readability-redundant-declaration,\ -readability-redundant-declaration,\
-readability-uppercase-literal-suffix,\
" "
HeaderFilterRegex: 'Source/cm[^/]*\.(h|hxx|cxx)$' HeaderFilterRegex: 'Source/cm[^/]*\.(h|hxx|cxx)$'
CheckOptions: CheckOptions:
...@@ -33,4 +31,6 @@ CheckOptions: ...@@ -33,4 +31,6 @@ CheckOptions:
value: '1' value: '1'
- key: modernize-use-equals-default.IgnoreMacros - key: modernize-use-equals-default.IgnoreMacros
value: '0' value: '0'
- key: modernize-use-auto.MinTypeNameLength
value: '80'
... ...
.gitattributes export-ignore .git* export-ignore
.hooks* export-ignore .hooks* export-ignore
# Custom attribute to mark sources as using our C code style. # Custom attribute to mark sources as using our C code style.
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
bootstrap eol=lf bootstrap eol=lf
configure eol=lf configure eol=lf
*.[1-9] eol=lf *.[1-9] eol=lf
*.bash eol=lf
*.sh eol=lf *.sh eol=lf
*.sh.in eol=lf *.sh.in eol=lf
......
...@@ -76,8 +76,8 @@ _cmake() ...@@ -76,8 +76,8 @@ _cmake()
compopt -o nospace compopt -o nospace
else else
# complete variable names # complete variable names
COMPREPLY=( $( compgen -W '$( cmake -LA -N | tail -n +2 | COMPREPLY=( $( compgen -W '$( cmake -LA -N 2>/dev/null |
cut -f1 -d: )' -P "$prefix" -- "$cur" ) ) tail -n +2 | cut -f1 -d: )' -P "$prefix" -- "$cur" ) )
compopt -o nospace compopt -o nospace
fi fi
return return
......
;;; cmake-mode.el --- major-mode for editing CMake sources ;;; cmake-mode.el --- major-mode for editing CMake sources
;; Package-Requires: ((emacs "24.1"))
; Distributed under the OSI-approved BSD 3-Clause License. See accompanying ; Distributed under the OSI-approved BSD 3-Clause License. See accompanying
; file Copyright.txt or https://cmake.org/licensing for details. ; file Copyright.txt or https://cmake.org/licensing for details.
...@@ -224,17 +226,11 @@ the indentation. Otherwise it retains the same position on the line" ...@@ -224,17 +226,11 @@ the indentation. Otherwise it retains the same position on the line"
;; ;;
(defvar cmake-mode-hook nil) (defvar cmake-mode-hook nil)
;------------------------------------------------------------------------------
;; For compatibility with Emacs < 24
(defalias 'cmake--parent-mode
(if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode))
;;------------------------------------------------------------------------------ ;;------------------------------------------------------------------------------
;; Mode definition. ;; Mode definition.
;; ;;
;;;###autoload ;;;###autoload
(define-derived-mode cmake-mode cmake--parent-mode "CMake" (define-derived-mode cmake-mode prog-mode "CMake"
"Major mode for editing CMake source files." "Major mode for editing CMake source files."
; Setup font-lock mode. ; Setup font-lock mode.
......
...@@ -288,6 +288,7 @@ syn keyword cmakeProperty contained ...@@ -288,6 +288,7 @@ syn keyword cmakeProperty contained
\ SKIP_AUTORCC \ SKIP_AUTORCC
\ SKIP_AUTOUIC \ SKIP_AUTOUIC
\ SKIP_BUILD_RPATH \ SKIP_BUILD_RPATH
\ SKIP_REGULAR_EXPRESSION
\ SKIP_RETURN_CODE \ SKIP_RETURN_CODE
\ SOURCES \ SOURCES
\ SOURCE_DIR \ SOURCE_DIR
...@@ -915,6 +916,7 @@ syn keyword cmakeVariable contained ...@@ -915,6 +916,7 @@ syn keyword cmakeVariable contained
\ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES \ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
\ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT \ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
\ CMAKE_ECLIPSE_MAKE_ARGUMENTS \ CMAKE_ECLIPSE_MAKE_ARGUMENTS
\ CMAKE_ECLIPSE_RESOURCE_ENCODING
\ CMAKE_ECLIPSE_VERSION \ CMAKE_ECLIPSE_VERSION
\ CMAKE_EDIT_COMMAND \ CMAKE_EDIT_COMMAND
\ CMAKE_ENABLE_EXPORTS \ CMAKE_ENABLE_EXPORTS
...@@ -948,6 +950,12 @@ syn keyword cmakeVariable contained ...@@ -948,6 +950,12 @@ syn keyword cmakeVariable contained
\ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY \ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
\ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE \ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
\ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM \ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
\ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH
\ CMAKE_FIND_USE_CMAKE_PATH
\ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
\ CMAKE_FIND_USE_PACKAGE_REGISTRY
\ CMAKE_FIND_USE_PACKAGE_ROOT_PATH
\ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
\ CMAKE_FOLDER \ CMAKE_FOLDER
\ CMAKE_FRAMEWORK \ CMAKE_FRAMEWORK
\ CMAKE_FRAMEWORK_PATH \ CMAKE_FRAMEWORK_PATH
...@@ -1765,6 +1773,7 @@ syn keyword cmakeKWadd_test contained ...@@ -1765,6 +1773,7 @@ syn keyword cmakeKWadd_test contained
\ NAME \ NAME
\ OFF \ OFF
\ PASS_REGULAR_EXPRESSION \ PASS_REGULAR_EXPRESSION
\ SKIP_REGULAR_EXPRESSION
\ TARGET_FILE \ TARGET_FILE
\ WILL_FAIL \ WILL_FAIL
\ WORKING_DIRECTORY \ WORKING_DIRECTORY
......
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details. # file Copyright.txt or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION 3.1...3.14 FATAL_ERROR) cmake_minimum_required(VERSION 3.1...3.15 FATAL_ERROR)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideC.cmake) set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideC.cmake)
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideCXX.cmake) set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/Source/Modules/OverrideCXX.cmake)
project(CMake) project(CMake)
unset(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX) unset(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
unset(CMAKE_USER_MAKE_RULES_OVERRIDE_C) unset(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
# FIXME: This block should go away after a transition period.
if(MSVC AND NOT CMAKE_VERSION VERSION_LESS 3.15)
# Filter out MSVC runtime library flags that may have come from
# the cache of an existing build tree or from scripts.
foreach(l C CXX)
foreach(c DEBUG MINSIZEREL RELEASE RELWITHDEBINFO)
string(REGEX REPLACE "[-/]M[DT]d?( |$)" "" "CMAKE_${l}_FLAGS_${c}" "${CMAKE_${l}_FLAGS_${c}}")
endforeach()
endforeach()
endif()
# Make sure we can find internal find_package modules only used for # Make sure we can find internal find_package modules only used for
# building CMake and not for shipping externally # building CMake and not for shipping externally
list(INSERT CMAKE_MODULE_PATH 0 ${CMake_SOURCE_DIR}/Source/Modules) list(INSERT CMAKE_MODULE_PATH 0 ${CMake_SOURCE_DIR}/Source/Modules)
...@@ -18,6 +29,10 @@ if(CMAKE_BOOTSTRAP) ...@@ -18,6 +29,10 @@ if(CMAKE_BOOTSTRAP)
unset(CMAKE_BOOTSTRAP CACHE) unset(CMAKE_BOOTSTRAP CACHE)
endif() endif()
if(CMake_TEST_HOST_CMAKE)
get_filename_component(CMake_TEST_EXTERNAL_CMAKE "${CMAKE_COMMAND}" DIRECTORY)
endif()
if(NOT CMake_TEST_EXTERNAL_CMAKE) if(NOT CMake_TEST_EXTERNAL_CMAKE)
if(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") if(CMAKE_SYSTEM_NAME STREQUAL "HP-UX")
message(FATAL_ERROR message(FATAL_ERROR
...@@ -429,10 +444,7 @@ macro (CMAKE_BUILD_UTILITIES) ...@@ -429,10 +444,7 @@ macro (CMAKE_BUILD_UTILITIES)
set(_CMAKE_USE_OPENSSL_DEFAULT OFF) set(_CMAKE_USE_OPENSSL_DEFAULT OFF)
if(NOT DEFINED CMAKE_USE_OPENSSL AND NOT WIN32 AND NOT APPLE if(NOT DEFINED CMAKE_USE_OPENSSL AND NOT WIN32 AND NOT APPLE
AND CMAKE_SYSTEM_NAME MATCHES "(Linux|FreeBSD)") AND CMAKE_SYSTEM_NAME MATCHES "(Linux|FreeBSD)")
find_package(OpenSSL QUIET) set(_CMAKE_USE_OPENSSL_DEFAULT ON)
if(OPENSSL_FOUND)
set(_CMAKE_USE_OPENSSL_DEFAULT ON)
endif()
endif() endif()
option(CMAKE_USE_OPENSSL "Use OpenSSL." ${_CMAKE_USE_OPENSSL_DEFAULT}) option(CMAKE_USE_OPENSSL "Use OpenSSL." ${_CMAKE_USE_OPENSSL_DEFAULT})
mark_as_advanced(CMAKE_USE_OPENSSL) mark_as_advanced(CMAKE_USE_OPENSSL)
...@@ -629,8 +641,7 @@ endif() ...@@ -629,8 +641,7 @@ endif()
# The main section of the CMakeLists file # The main section of the CMakeLists file
# #
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# Compute CMake_VERSION, etc. include(Source/CMakeVersion.cmake)
include(Source/CMakeVersionCompute.cmake)
# Include the standard Dart testing module # Include the standard Dart testing module
enable_testing() enable_testing()
...@@ -677,7 +688,7 @@ endif() ...@@ -677,7 +688,7 @@ endif()
# to a cdash4simpletest database. In these cases, the CDash dashboards # to a cdash4simpletest database. In these cases, the CDash dashboards
# should be run first. # should be run first.
# #
if("x${CMAKE_TESTS_CDASH_SERVER}" STREQUAL "x") if("x${CMAKE_TESTS_CDASH_SERVER}" STREQUAL "x" AND NOT CMake_TEST_NO_NETWORK)
set(CMAKE_TESTS_CDASH_SERVER "http://open.cdash.org") set(CMAKE_TESTS_CDASH_SERVER "http://open.cdash.org")
endif() endif()
...@@ -817,7 +828,7 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE) ...@@ -817,7 +828,7 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
PATTERN "*.sh*" PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE PATTERN "*.sh*" PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE
GROUP_READ GROUP_EXECUTE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE WORLD_READ WORLD_EXECUTE
REGEX "Help/dev($|/)" EXCLUDE REGEX "Help/(dev|guide)($|/)" EXCLUDE
) )
# Install auxiliary files integrating with other tools. # Install auxiliary files integrating with other tools.
......
...@@ -27,14 +27,15 @@ To contribute patches: ...@@ -27,14 +27,15 @@ To contribute patches:
#. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration. #. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration.
#. See `Building CMake`_ for building CMake locally. #. See `Building CMake`_ for building CMake locally.
#. See the `CMake Source Code Guide`_ for coding guidelines. #. See the `CMake Source Code Guide`_ for coding guidelines.
#. Base all new work on the upstream ``master`` branch. #. Create a topic branch named suitably for your work.
Base all new work on the upstream ``master`` branch.
Base work on the upstream ``release`` branch only if it fixes a Base work on the upstream ``release`` branch only if it fixes a
regression or bug in a feature new to that release. regression or bug in a feature new to that release.
If in doubt, prefer ``master``. Reviewers may simply ask for If in doubt, prefer ``master``. Reviewers may simply ask for
a rebase if deemed appropriate in particular cases. a rebase if deemed appropriate in particular cases.
#. Create commits making incremental, distinct, logically complete changes #. Create commits making incremental, distinct, logically complete changes
with appropriate `commit messages`_. with appropriate `commit messages`_.
#. Push a topic branch to a personal repository fork on GitLab. #. Push the topic branch to a personal repository fork on GitLab.
#. Create a GitLab Merge Request targeting the upstream ``master`` branch #. Create a GitLab Merge Request targeting the upstream ``master`` branch
(even if the change is intended for merge to the ``release`` branch). (even if the change is intended for merge to the ``release`` branch).
Check the box labelled "Allow commits from members who can merge to the Check the box labelled "Allow commits from members who can merge to the
......
...@@ -89,7 +89,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows: ...@@ -89,7 +89,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
searched after paths from the current module, searched after paths from the current module,
i.e. ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``, i.e. ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``,
``<ParentPackage>_ROOT``, ``ENV{<ParentPackage>_ROOT}``, etc. ``<ParentPackage>_ROOT``, ``ENV{<ParentPackage>_ROOT}``, etc.
This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed. This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
See policy :policy:`CMP0074`. See policy :policy:`CMP0074`.
* |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX| * |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX|
...@@ -97,7 +98,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows: ...@@ -97,7 +98,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
2. Search paths specified in cmake-specific cache variables. 2. Search paths specified in cmake-specific cache variables.
These are intended to be used on the command line with a ``-DVAR=value``. These are intended to be used on the command line with a ``-DVAR=value``.
The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`. The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
This can be skipped if ``NO_CMAKE_PATH`` is passed. This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
:variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``.
* |CMAKE_PREFIX_PATH_XXX| * |CMAKE_PREFIX_PATH_XXX|
* |CMAKE_XXX_PATH| * |CMAKE_XXX_PATH|
...@@ -107,7 +109,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows: ...@@ -107,7 +109,8 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
These are intended to be set in the user's shell configuration, These are intended to be set in the user's shell configuration,
and therefore use the host's native path separator and therefore use the host's native path separator
(``;`` on Windows and ``:`` on UNIX). (``;`` on Windows and ``:`` on UNIX).
This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed. This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or
by setting the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``.
* |CMAKE_PREFIX_PATH_XXX| * |CMAKE_PREFIX_PATH_XXX|
* |CMAKE_XXX_PATH| * |CMAKE_XXX_PATH|
...@@ -119,13 +122,16 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows: ...@@ -119,13 +122,16 @@ If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
Hard-coded guesses should be specified with the ``PATHS`` option. Hard-coded guesses should be specified with the ``PATHS`` option.
5. Search the standard system environment variables. 5. Search the standard system environment variables.
This can be skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is an argument. This can be skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by
setting the :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``.
* |SYSTEM_ENVIRONMENT_PATH_XXX| * |SYSTEM_ENVIRONMENT_PATH_XXX|
* |SYSTEM_ENVIRONMENT_PATH_WINDOWS_XXX|
6. Search cmake variables defined in the Platform files 6. Search cmake variables defined in the Platform files
for the current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH`` for the current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH``
is passed. is passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
to ``FALSE``.
* |CMAKE_SYSTEM_PREFIX_PATH_XXX| * |CMAKE_SYSTEM_PREFIX_PATH_XXX|
* |CMAKE_SYSTEM_XXX_PATH| * |CMAKE_SYSTEM_XXX_PATH|
......
...@@ -68,9 +68,6 @@ The options are: ...@@ -68,9 +68,6 @@ The options are:
order-only dependencies to ensure the byproducts will be order-only dependencies to ensure the byproducts will be
available before their dependents build. available before their dependents build.
The ``BYPRODUCTS`` option is ignored on non-Ninja generators
except to mark byproducts ``GENERATED``.
``COMMAND`` ``COMMAND``
Specify the command-line(s) to execute at build time. Specify the command-line(s) to execute at build time.
If more than one ``COMMAND`` is specified they will be executed in order, If more than one ``COMMAND`` is specified they will be executed in order,
...@@ -111,6 +108,9 @@ The options are: ...@@ -111,6 +108,9 @@ The options are:
an ``OUTPUT`` of another custom command in the same directory an ``OUTPUT`` of another custom command in the same directory
(``CMakeLists.txt`` file) CMake automatically brings the other (``CMakeLists.txt`` file) CMake automatically brings the other
custom command into the target in which this command is built. custom command into the target in which this command is built.
A target-level dependency is added if any dependency is listed as
``BYPRODUCTS`` of a target or any of its build events in the same
directory to ensure the byproducts will be available.
If ``DEPENDS`` is not specified the command will run whenever If ``DEPENDS`` is not specified the command will run whenever
the ``OUTPUT`` is missing; if the command does not actually the ``OUTPUT`` is missing; if the command does not actually
create the ``OUTPUT`` then the rule will always run. create the ``OUTPUT`` then the rule will always run.
......
...@@ -49,9 +49,6 @@ The options are: ...@@ -49,9 +49,6 @@ The options are:
order-only dependencies to ensure the byproducts will be order-only dependencies to ensure the byproducts will be
available before their dependents build. available before their dependents build.
The ``BYPRODUCTS`` option is ignored on non-Ninja generators
except to mark byproducts ``GENERATED``.
``COMMAND`` ``COMMAND``
Specify the command-line(s) to execute at build time. Specify the command-line(s) to execute at build time.
If more than one ``COMMAND`` is specified they will be executed in order, If more than one ``COMMAND`` is specified they will be executed in order,
...@@ -86,6 +83,9 @@ The options are: ...@@ -86,6 +83,9 @@ The options are:
:command:`add_custom_command` command calls in the same directory :command:`add_custom_command` command calls in the same directory
(``CMakeLists.txt`` file). They will be brought up to date when (``CMakeLists.txt`` file). They will be brought up to date when
the target is built. the target is built.
A target-level dependency is added if any dependency is a byproduct
of a target or any of its build events in the same directory to ensure
the byproducts will be available before this target is built.
Use the :command:`add_dependencies` command to add dependencies Use the :command:`add_dependencies` command to add dependencies
on other targets. on other targets.
......
...@@ -7,7 +7,8 @@ Add a test to the project to be run by :manual:`ctest(1)`. ...@@ -7,7 +7,8 @@ Add a test to the project to be run by :manual:`ctest(1)`.
add_test(NAME <name> COMMAND <command> [<arg>...] add_test(NAME <name> COMMAND <command> [<arg>...]
[CONFIGURATIONS <config>...] [CONFIGURATIONS <config>...]
[WORKING_DIRECTORY <dir>]) [WORKING_DIRECTORY <dir>]
[COMMAND_EXPAND_LISTS])
Adds a test called ``<name>``. The test name may not contain spaces, Adds a test called ``<name>``. The test name may not contain spaces,
quotes, or other characters special in CMake syntax. The options are: quotes, or other characters special in CMake syntax. The options are:
...@@ -28,12 +29,18 @@ quotes, or other characters special in CMake syntax. The options are: ...@@ -28,12 +29,18 @@ quotes, or other characters special in CMake syntax. The options are:
directory set to the build directory corresponding to the directory set to the build directory corresponding to the
current source directory. current source directory.
``COMMAND_EXPAND_LISTS``
Lists in ``COMMAND`` arguments will be expanded, including those
created with
:manual:`generator expressions <cmake-generator-expressions(7)>`.
The given test command is expected to exit with code ``0`` to pass and The given test command is expected to exit with code ``0`` to pass and
non-zero to fail, or vice-versa if the :prop_test:`WILL_FAIL` test non-zero to fail, or vice-versa if the :prop_test:`WILL_FAIL` test
property is set. Any output written to stdout or stderr will be property is set. Any output written to stdout or stderr will be
captured by :manual:`ctest(1)` but does not affect the pass/fail status captured by :manual:`ctest(1)` but does not affect the pass/fail status
unless the :prop_test:`PASS_REGULAR_EXPRESSION` or unless the :prop_test:`PASS_REGULAR_EXPRESSION`,
:prop_test:`FAIL_REGULAR_EXPRESSION` test property is used. :prop_test:`FAIL_REGULAR_EXPRESSION` or
:prop_test:`SKIP_REGULAR_EXPRESSION` test property is used.
The ``COMMAND`` and ``WORKING_DIRECTORY`` options may use "generator The ``COMMAND`` and ``WORKING_DIRECTORY`` options may use "generator
expressions" with the syntax ``$<...>``. See the expressions" with the syntax ``$<...>``. See the
......
...@@ -8,7 +8,7 @@ Perform the :ref:`CTest Coverage Step` as a :ref:`Dashboard Client`. ...@@ -8,7 +8,7 @@ Perform the :ref:`CTest Coverage Step` as a :ref:`Dashboard Client`.
ctest_coverage([BUILD <build-dir>] [APPEND] ctest_coverage([BUILD <build-dir>] [APPEND]
[LABELS <label>...] [LABELS <label>...]
[RETURN_VALUE <result-var>] [RETURN_VALUE <result-var>]
[CAPTURE_CMAKE_ERROR <result-var] [CAPTURE_CMAKE_ERROR <result-var>]
[QUIET] [QUIET]
) )
......
...@@ -5,9 +5,9 @@ Starts the testing for a given model ...@@ -5,9 +5,9 @@ Starts the testing for a given model
:: ::
ctest_start(<model> [<source> [<binary>]] [TRACK <track>] [QUIET]) ctest_start(<model> [<source> [<binary>]] [GROUP <group>] [QUIET])
ctest_start([<model> [<source> [<binary>]]] [TRACK <track>] APPEND [QUIET]) ctest_start([<model> [<source> [<binary>]]] [GROUP <group>] APPEND [QUIET])
Starts the testing for a given model. The command should be called Starts the testing for a given model. The command should be called
after the binary directory is initialized. after the binary directory is initialized.
...@@ -26,20 +26,21 @@ The parameters are as follows: ...@@ -26,20 +26,21 @@ The parameters are as follows:
Set the binary directory. If not specified, the value of Set the binary directory. If not specified, the value of
:variable:`CTEST_BINARY_DIRECTORY` is used instead. :variable:`CTEST_BINARY_DIRECTORY` is used instead.
``TRACK <track>`` ``GROUP <group>``
If ``TRACK`` is used, the submissions will go to the specified track on the If ``GROUP`` is used, the submissions will go to the specified group on the
CDash server. If no ``TRACK`` is specified, the name of the model is used by CDash server. If no ``GROUP`` is specified, the name of the model is used by
default. default. This replaces the deprecated option ``TRACK``. Despite the name
change its behavior is unchanged.
``APPEND`` ``APPEND``
If ``APPEND`` is used, the existing ``TAG`` is used rather than creating a new If ``APPEND`` is used, the existing ``TAG`` is used rather than creating a new
one based on the current time stamp. If you use ``APPEND``, you can omit the one based on the current time stamp. If you use ``APPEND``, you can omit the
``<model>`` and ``TRACK <track>`` parameters, because they will be read from ``<model>`` and ``GROUP <group>`` parameters, because they will be read from
the generated ``TAG`` file. For example: the generated ``TAG`` file. For example:
.. code-block:: cmake .. code-block:: cmake
ctest_start(Experimental TRACK TrackExperimental) ctest_start(Experimental GROUP GroupExperimental)
Later, in another ``ctest -S`` script: Later, in another ``ctest -S`` script:
...@@ -48,11 +49,11 @@ The parameters are as follows: ...@@ -48,11 +49,11 @@ The parameters are as follows:
ctest_start(APPEND) ctest_start(APPEND)
When the second script runs ``ctest_start(APPEND)``, it will read the When the second script runs ``ctest_start(APPEND)``, it will read the
``Experimental`` model and ``TrackExperimental`` track from the ``TAG`` file ``Experimental`` model and ``GroupExperimental`` group from the ``TAG`` file
generated by the first ``ctest_start()`` command. Please note that if you generated by the first ``ctest_start()`` command. Please note that if you
call ``ctest_start(APPEND)`` and specify a different model or track than call ``ctest_start(APPEND)`` and specify a different model or group than
in the first ``ctest_start()`` command, a warning will be issued, and the in the first ``ctest_start()`` command, a warning will be issued, and the
new model and track will be used. new model and group will be used.
``QUIET`` ``QUIET``
If ``QUIET`` is used, CTest will suppress any non-error messages that it If ``QUIET`` is used, CTest will suppress any non-error messages that it
...@@ -65,11 +66,11 @@ equivalent: ...@@ -65,11 +66,11 @@ equivalent:
.. code-block:: cmake .. code-block:: cmake
ctest_start(Experimental path/to/source path/to/binary TRACK SomeTrack QUIET APPEND) ctest_start(Experimental path/to/source path/to/binary GROUP SomeGroup QUIET APPEND)
ctest_start(TRACK SomeTrack Experimental QUIET path/to/source APPEND path/to/binary) ctest_start(GROUP SomeGroup Experimental QUIET path/to/source APPEND path/to/binary)
ctest_start(APPEND QUIET Experimental path/to/source TRACK SomeTrack path/to/binary) ctest_start(APPEND QUIET Experimental path/to/source GROUP SomeGroup path/to/binary)