68e1385a5c Merge branch 'backport-3.24-doc-ctest_test-output-control' into doc-ctest_test-output-control
fadc93286a Help: Add crossrefs to ctest output control options
de892f3d4e Help: Add crossrefs to ctest output control options
3453e6bd48 Merge branch 'backport-3.24-doc-ctest_test-output-control' into doc-ctest_test-output-control
8981e88b18 Help: Add missing closing quote on C++ example
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7595
fadc93286a Help: Add crossrefs to ctest output control options
8981e88b18 Help: Add missing closing quote on C++ example
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7595
b55152e7ad gitlab-ci: add jobs to test CMake with external dependencies on Linux
6a05d107ca ci: add CMake external build dependencies to Debian and Fedora base images
d3c1b8a491 jsoncpp: Require version 1.6.0 when using system-provided library
68d3ca7008 Tests: Fix RunCMake.FileAPI test with jsoncpp < 1.7.5
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7592
Prior to jsoncpp commit `126bdc2b05` (Reject extra chars if strictRoot,
2016-08-21, 1.7.5~2), it did not diagnose trailing characters in the
input after a JSON value. Teach our corresponding test case to tolerate
the old behavior.
Switch order of one try_compile test so that the total set of tests is
in a more sensible order. Remove two duplicate tests. Remove some
gratuitous (and not entirely accurate) messages.
Clarify in `cmake-language(7)` that a variable lookup may use a cache
entry if the variable is not set. Fix misleading text in added by
commit 8ba2a8d4a4 (Help: short/long variable reference in if command,
2018-11-01, v3.14.0-rc1~408^2~2).
Fixes: #23863
Modify cmCoreTryCompile to only recognize try_run arguments when
actually parsing try_run. (The old behavior was to recognize try_run
arguments for try_compile also and then complain.)
This has a small chance that a try_run keyword will be consumed as part
of a multi-valued keyword argument. However, this behavior is more
consistent with other commands, as we don't normally treat keywords as
universally reserved. Also, the code is noticeably simplified.
In commit 6b427d8da9 (cmCoreTryCompile: Port to cmArgumentParser,
2022-08-01) we inadvertently dropped a matching quote during refactoring
of reporting unknown arguments given to try_compile/try_run. Add the
missing quote to match the old behavior and not have an imbalanced quote
in the warning.
When `cmake -E env` is given the `--modify` flag, try to parse the
following argument as an `ENVIRONMENT_MODIFICATION` operation and apply
it to the environment.
This generalizes `--unset=`:
1. When implementing `ENVIRONMENT_MODIFICATION` features for other CMake
commands, the `MYVAR=OP:VALUE` strings do not need to be translated
to OP-specific flags.
2. This provides a natural and consistent extension point to introduce
new operations without introducing very many flags.
3. Users need to learn only one syntax to access the same functionality.
There is one difference between the behavior here as compared to CTest's
interpretation of the `ENVIRONMENT_MODIFICATION` test property.
The `MYVAR=reset:` command when run in `cmake -E env` will reset `MYVAR`
to whatever its value was when `cmake -E env` launched, rather than try
to checkpoint after plain `MYVAR=VALUE` options. This makes `MYVAR=VALUE`
and `--modify MYVAR=set:VALUE` semantically equivalent.
Revert commit 6f17996edc (gitlab-ci: Update Windows builds to MSVC 14.33
toolset, 2022-08-15). A `cmake-gui` built with the MSVC 14.33 toolset
emits spurious errors when configuring CMake projects, even when the
adjacent `cmake` binary succeeds reliably. Revert to the known-working
MSVC 14.32 toolset pending further investigation.
Issue: #23859
Tweak cmArgumentParser to ignore positional arguments once a keyword
argument has been seen. This prevents mingling of keyword arguments
being able to effectively skip positional arguments, with later
arguments being picked up again; this seems highly likely to lead to
user confusion. This is also consistent with how other languages (e.g.
Python) handle a mix of "named" and positional arguments.