Commit Graph

56219 Commits

Author SHA1 Message Date
Braulio Valdivielso Martinez 8e1e97ccca Trace: include line_end field in json-v1 format
After !6954 got merged, it has become easier for tools to get
full stack-traces for runtime traces of a CMake program. The trace
information already included in the JSON objects (line number, source
file path) allows tools that display these stack traces to print the
CMake source code associated to them. However, CMake commands may
spawn multiple lines, and the JSON information associated to a trace
only contains the line in which the command started, but not the one
in which it ended. If tools want to print stack traces along the
relevant source code, and they want to print the whole command
associated to the stack frame, they will have to implement their own
CMake language parser to know where the command ends.

In order to simplify the life of those who want to write tooling for
CMake, this commit adds a `line_end` field to the json-v1 trace
format. If a given command spans multiple lines, the `line_end` field
will contain the line of the last line spanned by the command (that of
the closing parenthesis associated to the command).
2022-02-09 13:30:11 -05:00
Brad King e40cea3fe9 Merge topic 'genex-LINK_LIBRARY-to-decorate-library'
2a6b0415d7 $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target property
42965799b4 Genex: Add $<LINK_LIBRARY:...>
78dd7d5292 cmRulePlaceholderExpander: add base class for placeholder expansion reuse
4b55828a9f cmExpandListWithBacktrace: add handling of empty elements.
28d7432468 cmComputeLinkInformation: use cmComputeLinkDepends::LinkEntry

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6769
2022-02-09 09:28:20 -05:00
Brad King 3d5466d5e9 Merge topic 'trace-global-frame'
a41d6e4d7a Trace: add global_frame field to json-v1 format

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6954
2022-02-09 09:04:43 -05:00
Brad King 25003baf50 Merge topic 'vs_buildcache_support'
b764c7c273 VS: Add property to turn off Visual Studio compile batching

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6957
2022-02-09 08:59:45 -05:00
Brad King 2c553c56b4 Merge topic 'ci-intel-compiler'
3fe20db126 gitlab-ci: add jobs testing Intel 2022.0.2 compilers on Linux
6675fdd5c9 gitlab-ci: add jobs testing Intel 2021.4.0 compilers on Linux
ce8d471d94 gitlab-ci: add jobs testing Intel 2021.3.0 compilers on Linux

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6962
2022-02-09 08:57:49 -05:00
Brad King dfb56321ea Merge topic 'ci-clang-windows'
6bda940c25 ci: Add nightly CI job for clang++ with NMake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6961
2022-02-09 08:57:05 -05:00
Brad King 419eb2349a Merge topic 'test-vcs'
7b23fd6c1b Tests: Run CTest.UpdateBZR tests only if explicitly enabled
7cf5355d5e Tests: Add cache entries to control ExternalProject test VCS tools
c8b29dc5b9 Tests: Add cache entries to control existence of CTest.Update* tests
a70864e300 Tests: Make condition for CTest.UpdateCVS match pattern of other tools
1972a75536 Tests: Drop CTestUpdate.BZR test check for xmloutput plugin
f2566f6416 Tests: Drop unnecessary check for FindCVS module
530242576c Tests: Remove always-true condition enabling CTest.Update* tests
4e88a4228e Tests: Remove unused CVS tool discovery

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6956
2022-02-09 08:54:38 -05:00
Kitware Robot d7ee1145a1 CMake Nightly Date Stamp 2022-02-09 00:01:13 -05:00
Brad King 3fe20db126 gitlab-ci: add jobs testing Intel 2022.0.2 compilers on Linux
Note that the classic compiler version is 2021.5.0, but we still
have it in the 2022.0.2 base image.
2022-02-08 13:57:05 -05:00
Brad King 37e462aaa7 Merge branch 'release-3.23' 2022-02-08 11:23:05 -05:00
Brad King a15cc7706d CMake 3.23.0-rc1 v3.23.0-rc1 2022-02-08 10:43:14 -05:00
Brad King f25f6d2ed9 Merge branch 'release-3.23' 2022-02-08 10:42:18 -05:00
Brad King d831c0873a Merge branch 'release-3.22' 2022-02-08 10:42:16 -05:00
Brad King 0167dc0b1b Merge branch 'release-3.22' into release-3.23 2022-02-08 10:41:59 -05:00
Brad King cd278525ba Merge branch 'release-3.23' 2022-02-08 10:41:18 -05:00
Brad King dc1e84c915 Merge topic 'FindGSL-version-regex'
b67ff61c3a FindGSL: Improve version extraction regex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6960
2022-02-08 10:41:18 -05:00
Brad King 46ef6a5555 Merge topic 'FindGSL-version-regex' into release-3.23
b67ff61c3a FindGSL: Improve version extraction regex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6960
2022-02-08 10:41:17 -05:00
Brad King b91c4dfb75 Merge branch 'FindGSL-version-regex' into release-3.22
Merge-request: !6960
2022-02-08 10:31:16 -05:00
مهدي شينون (Mehdi Chinoune) b67ff61c3a FindGSL: Improve version extraction regex
Backport commit 58f2708b90 (FindGSL: Improve version extraction regex,
2021-12-17) to the CMake 3.22 branch.

Fixes: #23017
2022-02-08 10:21:15 -05:00
Brad King 85b7b94efb Merge branch 'release-3.23' 2022-02-08 08:39:35 -05:00
Brad King 6e32db4fb3 Merge topic 'dotnet_sdk' into release-3.23
5cdd774d51 VS: Handle build target correct for .NET SDK style projects with Any CPU
309191052c VS: Set Visual Studio versions read out from solution file
f7791698cb VS: Allow setting output directory in .NET SDK style projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6944
2022-02-08 08:39:34 -05:00
Brad King 4bd8a35b55 Merge topic 'dotnet_sdk'
5cdd774d51 VS: Handle build target correct for .NET SDK style projects with Any CPU
309191052c VS: Set Visual Studio versions read out from solution file
f7791698cb VS: Allow setting output directory in .NET SDK style projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6944
2022-02-08 08:39:34 -05:00
Brad King 72731dd9dd Merge branch 'release-3.23' 2022-02-08 08:35:20 -05:00
Brad King 8fa592a5f2 Merge topic 'GoogleTest-discover-type-params'
073dd1bd81 GoogleTest: Change format for typed tests
f28f738bd2 GoogleTest: Fix type param tests for suites with many cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6958
2022-02-08 08:35:19 -05:00
Brad King 5bf6e57a12 Merge topic 'GoogleTest-discover-type-params' into release-3.23
073dd1bd81 GoogleTest: Change format for typed tests
f28f738bd2 GoogleTest: Fix type param tests for suites with many cases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6958
2022-02-08 08:35:18 -05:00
Brad King 7b23fd6c1b Tests: Run CTest.UpdateBZR tests only if explicitly enabled
These tests have not been automatically enabled on current
versions of `bzr` in a long time.  The recent change to
drop the `xmlplugins` heuristic caused the tests to start
running on some machines, but they do not work everywhere.
Disable the tests again pending further investigation.
2022-02-08 08:17:39 -05:00
Marc Chevrier 2a6b0415d7 $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target property
To enable the management of incompatible $<LINK_LIBRARY> declarations,
add LINK_LIBRARY_OVERRIDE and LINK_LIBRARY_OVERRIDE_<LIBRARY> target
properties.
2022-02-08 11:41:04 +01:00
Kaloyan Donev b764c7c273 VS: Add property to turn off Visual Studio compile batching
Resolves: #23179
2022-02-08 08:07:00 +02:00
Kitware Robot 40c7649a55 CMake Nightly Date Stamp 2022-02-08 00:01:14 -05:00
Brad King 6675fdd5c9 gitlab-ci: add jobs testing Intel 2021.4.0 compilers on Linux 2022-02-07 19:33:00 -05:00
Brad King ce8d471d94 gitlab-ci: add jobs testing Intel 2021.3.0 compilers on Linux 2022-02-07 19:32:33 -05:00
Brad King 6bda940c25 ci: Add nightly CI job for clang++ with NMake
In commit c1f4bd792b (ci: Add LLVM/Clang 13.0 nightly CI jobs on
Windows, 2022-02-02) we added three of the four combinations of
`clang-cl`/`clang++` with NMake/Ninja.  Add the last combination.
2022-02-07 19:26:26 -05:00
Marc Chevrier 42965799b4 Genex: Add $<LINK_LIBRARY:...>
This generator expression offers the capability, for the link step, to
decorate libraries with prefix/suffix flags and/or adding any specific flag for each
library.

Fixes: #22812, #18751, #20078, #22703
2022-02-08 00:02:32 +01:00
Braulio Valdivielso Martinez a41d6e4d7a Trace: add global_frame field to json-v1 format
Tools using the json-v1 format might want to trace stack frames across
different `CMakeLists.txt` files, in order to, for example, provide
stacktraces that span from the top-level `CMakeLists.txt` in a
project. One would think that `frame` lets you do that, but it
doesn't, because it tells you the depth of the stack within the
current `CMakeLists.txt`, so it gets reset across calls to
`add_subdirectory`.

The solution involves adding a field with a "global frame". This value
gets incremented on calls to `add_subdirectory`, which makes it easier
for tools to reconstruct "global stacktraces".

I considered changing the current "frame" value, but I didn't because
it would be a breaking change. I cannot think of any use-case where
"frame" is more useful to "global-frame", but maybe I'm missing
something.
2022-02-07 16:03:22 -05:00
Evgeniy Shcherbina 073dd1bd81 GoogleTest: Change format for typed tests
Before it would output a typed test as follows:
  Suit/Type.Case
And now it would be:
  Suit.Case<Type>

In case of NO_PRETTY_TYPES it would simply use the type number
instead of its text representation:
  Suit.Case<0>

The change is introduced to make sure CTest outputs tests in a
similar fashion which is "*Suit.Case*" and angle brackets "<>"
emphasize that we are dealing with a typed (template) kind.
2022-02-07 12:53:17 -05:00
Evgeniy Shcherbina f28f738bd2 GoogleTest: Fix type param tests for suites with many cases
When there were many cases (two digits or more) the "prettier" would
fail to recognize the pretty part leaving the test name unprocessed.
The fix made sure the processing would work correctly, irrespective
of the case number.

Before the fix, for the following input:
TypedSuite/1.  # TypeParam = int
  case
TypedSuite/10.  # TypeParam = char
  case
The output would be:
TypedSuite/int.case
TypedSuite/10.  # TypeParam = char.case

Now the output will be:
TypedSuite/int.case
TypedSuite/char.case
2022-02-07 12:53:16 -05:00
Brad King 6b6d0d12a7 Merge topic 'allow_manifest_as_content'
feebc8394f Windows: Allow manifest files to be bundled as content

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6939
2022-02-07 12:19:01 -05:00
Brad King 4cf80f413b Merge topic 'cmcmd-end-of-options-delimiter'
b10930040d cmcmd: add end of options delimiter to cmake -E commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6934
2022-02-07 12:18:03 -05:00
Brad King 7cf5355d5e Tests: Add cache entries to control ExternalProject test VCS tools
Add undocumented `CMake_TEST_ExternalProject_*` cache entries to
explicitly enable or disable these tests.  If not set, compute defaults
as before.  Also consolidate the VCS default heuristics.
2022-02-07 11:53:29 -05:00
Brad King c8b29dc5b9 Tests: Add cache entries to control existence of CTest.Update* tests
Add undocumented `CMake_TEST_CTestUpdate_*` cache entries to explicitly
enable or disable these tests.  If not set, compute defaults as before.
2022-02-07 11:53:29 -05:00
Brad King a70864e300 Tests: Make condition for CTest.UpdateCVS match pattern of other tools 2022-02-07 11:53:28 -05:00
Brad King 1972a75536 Tests: Drop CTestUpdate.BZR test check for xmloutput plugin
Current `bzr` tools do not have any `bzr xmlplugins` command.
2022-02-07 11:53:28 -05:00
Brad King f2566f6416 Tests: Drop unnecessary check for FindCVS module 2022-02-07 11:53:28 -05:00
Brad King 530242576c Tests: Remove always-true condition enabling CTest.Update* tests 2022-02-07 11:53:26 -05:00
Brad King 4e88a4228e Tests: Remove unused CVS tool discovery
Since commit b819ee85c0 (BUG: Oops. Left chunk of junk at the bottom of
the main Tests CMakeLists.txt file..., 2009-07-24, v2.8.0~385) the
`do_cvs_tests` variable is not used in `Tests/CMakeLists.txt`.
2022-02-07 11:51:40 -05:00
Brad King dd6ca78800 Merge branch 'release-3.23' 2022-02-07 11:49:27 -05:00
Brad King 860dbece00 Merge topic 'doc-DESTDIR' into release-3.23
a9b8c9d33e Help: Clarify roles of DESTDIR and CMAKE_INSTALL_PREFIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6955
2022-02-07 11:49:26 -05:00
Brad King 533760ac29 Merge topic 'doc-DESTDIR'
a9b8c9d33e Help: Clarify roles of DESTDIR and CMAKE_INSTALL_PREFIX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6955
2022-02-07 11:49:26 -05:00
Brad King c308000ca1 Merge topic 'test-ctest_build-subdir-target'
e485dca1e8 Tests: Move CTest.BuildCommand.ProjectInSubdir into RunCMake.ctest_build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6953
2022-02-07 11:48:26 -05:00
Brad King e2e9a4b4c9 Merge topic 'test-download-server-timeout'
8809183d58 Tests: Optionally extend RunCMake.ExternalProject download server timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6952
2022-02-07 11:46:55 -05:00