Commit Graph

9666 Commits

Author SHA1 Message Date
Brad King 138337f53c Merge topic 'implicit-link-info-msvc'
93f2cd5b7c CMakeParseImplicitLinkInfo: Better detection of msvc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7619
2022-09-06 09:02:05 -04:00
Craig Scott df05616085 Merge topic 'truncation_test'
cb55d5e730 RunCMakeTest: fix Truncation test definition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7632
2022-09-06 08:35:56 -04:00
Frank Winklmeier cb55d5e730 RunCMakeTest: fix Truncation test definition
The `ctest_test` and `CTestCommandLine` truncation tests had multiple problems:
- escape expected result string to avoid regex matching
- specify the truncation size
- pass the truncation mode correctly into the test definition
- use unique test names

Issue: #23868
2022-09-05 13:42:40 +02:00
Brad King 01e95efc34 Merge topic 'cmake-presets-package'
a8d73085f4 CPack: Add support for presets
b699610df4 cmCMakePresetsGraph: Add package presets
215b9148eb CMakePresets.json: Fix formatting of --list-presets=all

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7621
2022-09-02 09:04:13 -04:00
Brad King 18a8aa079c Merge topic 'E-capabilities-tls'
d0bb3286f0 cmake -E capabilities: Tell whether TLS is enabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7593
2022-09-02 09:01:51 -04:00
Robert Maynard 93f2cd5b7c CMakeParseImplicitLinkInfo: Better detection of msvc
Use the compiler id information in addition to checking for `cl.exe`.
2022-09-02 08:04:39 -04:00
Brad King 44189d82a7 Tests: Fix some tests under CFLAGS=-DNDEBUG CXXFLAGS=-DNDEBUG
Fixes: #23888
2022-09-01 12:29:22 -04:00
Kyle Edwards d0bb3286f0 cmake -E capabilities: Tell whether TLS is enabled
Fixes: #20507
2022-09-01 11:20:14 -04:00
Brad King d10cbb0590 Merge topic 'add_language_levels_for_cxx26'
f808d8afb9 CMake: Support upcoming C++26 language level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !7601
2022-09-01 10:04:46 -04:00
Brad King 2e86c02c24 Merge topic 'compiler-launcher-genexp'
36400e9dc1 COMPILER_LAUNCHER: Add support for generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7613
2022-09-01 10:02:11 -04:00
Brad King 899e09cbca Merge topic 'Link-MACOSX_BUNDLE'
71dae4eb5c Merge branch 'backport-3.24-Link-MACOSX_BUNDLE' into Link-MACOSX_BUNDLE
f5a441a616 Xcode: Fix erroneous MACOSX_BUNDLE link

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7624
2022-09-01 09:58:17 -04:00
Brad King 85d29b7de1 Merge topic 'Link-MACOSX_BUNDLE' into release-3.24
f5a441a616 Xcode: Fix erroneous MACOSX_BUNDLE link

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7624
2022-09-01 09:58:16 -04:00
Robert Maynard f808d8afb9 CMake: Support upcoming C++26 language level 2022-08-31 13:46:18 -04:00
Kyle Edwards a8d73085f4 CPack: Add support for presets
Fixes: #23117
2022-08-31 11:56:21 -04:00
Kyle Edwards 215b9148eb CMakePresets.json: Fix formatting of --list-presets=all
Only print an extra newline after a section if that section was
actually printed.
2022-08-31 10:13:32 -04:00
Marc Chevrier 71dae4eb5c Merge branch 'backport-3.24-Link-MACOSX_BUNDLE' into Link-MACOSX_BUNDLE 2022-08-31 09:54:46 -04:00
Marc Chevrier f5a441a616 Xcode: Fix erroneous MACOSX_BUNDLE link
Refactoring in commit a2cfa2da4f (GenEx/LINK_LIBRARY: Add features for
framework support on Apple, 2022-02-10, v3.24.0-rc1~661^2) accidentally
removed a `GetParentDirectory` call.  Restore it.

Fixes: #23891
2022-08-31 09:52:38 -04:00
Brad King fc4451dd31 Merge topic 'xcode-add-gpu-validation-and-default-configuration'
740bee97bd Xcode: Add settings to control a scheme's launch configuration
39456c70e1 Xcode: Add settings to control a scheme's GPU Validation values
4034272ed8 gitignore: Tell Git to ignore the .cache/ directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7581
2022-08-31 09:43:50 -04:00
Brad King f7fc864c3a Merge topic 'FindOpenSP-module'
e706da5f7e FindOpenSP: Add module to find the OpenSP library
4bcdf1b992 ci: add OpenSP to Debian and Fedora base images

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7470
2022-08-31 09:42:07 -04:00
Brad King b9371c0477 Merge topic 'CMAKE_FIND_USE_INSTALL_PREFIX-support-staging-prefix'
0fc10bb19b CMAKE_FIND_USE_INSTALL_PREFIX considers CMAKE_STAGING_PREFIX
43d31c5198 cmFindBase: Refactor CMAKE_FIND_USE_INSTALL_PREFIX handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7623
2022-08-31 09:39:52 -04:00
Brad King 3aebeb1b55 Merge topic 'CMAKE_FIND_USE_INSTALL_PREFIX-support-staging-prefix' into release-3.24
0fc10bb19b CMAKE_FIND_USE_INSTALL_PREFIX considers CMAKE_STAGING_PREFIX
43d31c5198 cmFindBase: Refactor CMAKE_FIND_USE_INSTALL_PREFIX handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7623
2022-08-31 09:39:51 -04:00
Brad King f9a1eeb2b4 Merge topic 'test-symlinks-with-ccache'
d3ac4e8246 Tests: Teach RunCMake.SymlinkTrees to tolerate CCACHE_BASEDIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7622
2022-08-31 09:38:52 -04:00
Robert Maynard 0fc10bb19b CMAKE_FIND_USE_INSTALL_PREFIX considers CMAKE_STAGING_PREFIX
Fixes #23900
2022-08-30 17:52:40 -04:00
Thomas Weißschuh 36400e9dc1 COMPILER_LAUNCHER: Add support for generator expressions
Fixes: #23441
2022-08-30 17:26:25 -04:00
Brad King d3ac4e8246 Tests: Teach RunCMake.SymlinkTrees to tolerate CCACHE_BASEDIR
If the test is driven with a `ccache`-wrapped compiler then
the `CCACHE_BASEDIR` environment variable might break paths
the test checks.

Fixes: #23885
2022-08-30 16:41:20 -04:00
Dawid Wróbel e706da5f7e FindOpenSP: Add module to find the OpenSP library
OpenSP has not seen a release in seventeen years, so is unlikely to ever
provide a CMake package configuration file.  Add a find module instead.
2022-08-30 13:55:07 -04:00
PatriceJiang 39456c70e1 Xcode: Add settings to control a scheme's GPU Validation values 2022-08-30 10:26:48 -04:00
Kyle Edwards 2ef64745c8 Merge topic 'file-set-source-group'
970052fedd FILE_SET: Fix source group detection
bcc3965813 Tests: Fix VS10Project SourceGroupTreeCMakeLists check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7609
2022-08-25 09:14:21 -04:00
Kyle Edwards 970052fedd FILE_SET: Fix source group detection
Call MatchChildrenFiles() instead of MatchesFiles() in order to
account for files being in subgroups of source groups.

Fixes: #23880
2022-08-24 16:07:24 -04:00
Kyle Edwards bcc3965813 Tests: Fix VS10Project SourceGroupTreeCMakeLists check
Fix an `IN LISTS` loop, fix a variable check, and escape backslashes
in the regex used to search for source group names.
2022-08-24 16:07:24 -04:00
Kyle Edwards eb86c99c4e Merge topic 'fix-presets-test-symlinked-build-dir'
ef0cd3dc40 Tests: Fix CMakePresets test in unusual environments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7598
2022-08-23 14:21:49 -04:00
Brad King 5936d4f2ad Merge topic 'block-management'
44a2f3f332 Add new flow-control commands for variables and policies scopes management
604993248f cmMakefile::VariablePushPop: helper class to manage variable scopes
3d94ee0e03 cmMakefile::RaiseScope: Add support for cmValue argument
553da0685f cmFunctionBlocker: Add handling of close block without parameters.
02c067dee5 cm::enum_set: fix various bugs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: John Ericson <git@johnericson.me>
Merge-request: !7575
2022-08-23 08:01:18 -04:00
Brad King 52c95540b7 target_*: Fix cross-directory call backtraces
Record the call-site backtrace, not the current backtrace of the
target's directory.

Fixes: #23873
2022-08-22 15:29:43 -04:00
Brad King 0d64c3abd1 Tests: Add FileAPI case for cross-directory target_* commands
The backtraces for some of the commands incorrectly come from the
target's directory instead of the caller's directory.  Expect the
incorrect backtraces in test results for now.

Increase the minimum required version of CMake in the test case
to enable policy CMP0079 to support cross-directory calls.

Issue: #23873
2022-08-22 14:51:16 -04:00
Marc Chevrier 44a2f3f332 Add new flow-control commands for variables and policies scopes management
Add block() and endblock() commands offering the capability to create
new scopes for variables and/or policies.

Fixes: #20171
2022-08-22 16:25:53 +02:00
Marc Chevrier 02c067dee5 cm::enum_set: fix various bugs 2022-08-22 16:25:53 +02:00
Matthew Woehlke ef0cd3dc40 Tests: Fix CMakePresets test in unusual environments
Tweak test in RunCMake/CMakePresets/GoodNoSCache.cmake to use the
canonical directory for comparison. This avoids an effectively spurious
test failure if the overall CMake build directory is a symlink.
2022-08-19 12:37:00 -04:00
Brad King 7b9757e507 Merge topic 'cuda_mark_toolkit_includes_as_system'
ea659b155d CUDA: Always mark cuda toolkit as system include

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7476
2022-08-19 07:25:00 -04:00
Brad King d69d0316da Merge topic 'try_compile-clean-up-tests'
299cd3e6ab try_compile: Clean up tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7591
2022-08-19 07:22:41 -04:00
Brad King 68d3ca7008 Tests: Fix RunCMake.FileAPI test with jsoncpp < 1.7.5
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.
2022-08-18 15:49:07 -04:00
Matthew Woehlke 299cd3e6ab try_compile: Clean up tests
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.
2022-08-18 11:27:27 -04:00
Robert Maynard ea659b155d CUDA: Always mark cuda toolkit as system include
Fixes: #23731
2022-08-18 10:37:06 -04:00
Brad King 36d35d4eb1 Merge topic 'cmake-E-env-modify'
c9d70a7cc3 cmake -E env: Add --modify flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7571
2022-08-18 08:04:06 -04:00
Brad King a2cf0db74b Merge topic 'try_compile-no-try_run-args'
b976b844d2 try_compile: Don't accept try_run arguments
24c83bb35b try_compile: Fix quotes in reporting of unknown arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7585
2022-08-18 08:01:02 -04:00
Brad King a336c83520 Merge topic 'argparse-positional-tweak'
f2ef60ca54 cmArgumentParser: Ignore positional after keyword

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7584
2022-08-18 07:58:54 -04:00
Matthew Woehlke b976b844d2 try_compile: Don't accept try_run arguments
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.
2022-08-17 15:44:35 -04:00
Alex Reinking c9d70a7cc3 cmake -E env: Add --modify flag
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.
2022-08-17 12:54:39 -04:00
Matthew Woehlke f2ef60ca54 cmArgumentParser: Ignore positional after keyword
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.
2022-08-17 11:03:51 -04:00
Matthew Woehlke 0ccaa7ecb9 Tests: Fix GCOV test in unusual environments
Tweak path computation in CTestCoverageCollectGCOV test so that the test
doesn't spuriously fail if the build directory is a symlink.
2022-08-16 15:36:50 -04:00
Brad King 5b949bbb91 Merge topic 'refactor-environment-modification'
a5d45e685f Tests: Add case for ENVIRONMENT_MODIFICATION property OP=reset behavior
e2854b4fa2 cmCTestRunTest: Implement the ENVIRONMENT test property with EnvDiff too
bfa1c5285b cmSystemTools: Add EnvDiff class to hold ENVIRONMENT_MODIFICATION logic
a0b1c4ee90 cmCTestRunTest: Simplify by using GetSystemPathlistSeparator
4e6cbb1f13 cmCTestRunTest: Remove unnecessary CMAKE_BOOTSTRAP guard

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7572
2022-08-16 13:03:33 -04:00