mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-11 01:29:36 -06:00
While I'm unsure about why `cmPackageInfoArguments` was originally written the way it was, in its current form, the way command sub-parsers work, the parser never considers arguments associated with a sub-parser if the sub-parser keyword isn't present. This means that the arguments associated with `cmPackageInfoArguments` are treated as unknown, and the logic to reject them being set if `PACKAGE_INFO` is not present can never actually execute. Therefore, remove it, and remove the associated (and effectively useless) `enable` argument to its `Check` method. Instead, ensure that the package name is actually specified. The only case in which the parser will create the `optional` associated with the sub-parser arguments is if the relevant keyword (i.e. `PACKAGE_INFO`) is present. However, while the associated value is `NonEmpty`, the way we are using the parser does not actually enforce this, and it looks like a correct fix may be a breaking change. Therefore, enforce it manually for now.
CMake Tests Directory ********************* This directory contains the CMake test suite. See also the `CMake Testing Guide`_ and the `CMake Source Code Guide`_. .. _`CMake Testing Guide`: ../Help/dev/testing.rst .. _`CMake Source Code Guide`: ../Help/dev/source.rst Many tests exist as immediate subdirectories, but some tests are organized as follows. * ``CMakeLib/``: Source code, used for tests, that links to the ``CMakeLib`` library defined over in ``Source/``. * ``CMakeOnly/``: Deprecated. Tests that run CMake to generate a project but not build it. Superseded by ``Tests/RunCMake/``. * ``Find*/``: Tests for specific find modules that can only be run on machines with the corresponding packages installed. They are enabled in ``CMakeLists.txt`` by undocumented options used on CI builds. * ``Module/``: Tests for specific CMake modules. * ``RunCMake/``: Tests that run CMake and/or other tools while precisely checking their return code and stdout/stderr content. Useful for testing error cases and diagnostic output. See `RunCMake/README.rst`_. .. _`RunCMake/README.rst`: RunCMake/README.rst