summaryrefslogtreecommitdiffstats
path: root/Tests
Commit message (Collapse)AuthorAgeFilesLines
* Trace: include `line_end` field in json-v1 formatBraulio Valdivielso Martinez2022-02-092-11/+32
| | | | | | | | | | | | | | | | | | | | 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).
* Merge topic 'genex-LINK_LIBRARY-to-decorate-library'Brad King2022-02-09127-0/+935
|\ | | | | | | | | | | | | | | | | | | | | 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
| * $<LINK_LIBRARY>: Add LINK_LIBRARY_OVERRIDE target propertyMarc Chevrier2022-02-0828-6/+152
| | | | | | | | | | | | To enable the management of incompatible $<LINK_LIBRARY> declarations, add LINK_LIBRARY_OVERRIDE and LINK_LIBRARY_OVERRIDE_<LIBRARY> target properties.
| * Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-07106-0/+789
| | | | | | | | | | | | | | | | 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
* | Merge topic 'trace-global-frame'Brad King2022-02-094-6/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | 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
| * | Trace: add global_frame field to json-v1 formatBraulio Valdivielso Martinez2022-02-074-6/+24
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge topic 'vs_buildcache_support'Brad King2022-02-093-0/+41
|\ \ | | | | | | | | | | | | | | | | | | b764c7c273 VS: Add property to turn off Visual Studio compile batching Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6957
| * | VS: Add property to turn off Visual Studio compile batchingKaloyan Donev2022-02-083-0/+41
| |/ | | | | | | Resolves: #23179
* | Merge topic 'test-vcs'Brad King2022-02-092-211/+169
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Tests: Run CTest.UpdateBZR tests only if explicitly enabledBrad King2022-02-081-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | Tests: Add cache entries to control ExternalProject test VCS toolsBrad King2022-02-072-84/+58
| | | | | | | | | | | | | | | | | | 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.
| * | Tests: Add cache entries to control existence of CTest.Update* testsBrad King2022-02-071-52/+75
| | | | | | | | | | | | | | | Add undocumented `CMake_TEST_CTestUpdate_*` cache entries to explicitly enable or disable these tests. If not set, compute defaults as before.
| * | Tests: Make condition for CTest.UpdateCVS match pattern of other toolsBrad King2022-02-071-6/+5
| | |
| * | Tests: Drop CTestUpdate.BZR test check for xmloutput pluginBrad King2022-02-071-20/+15
| | | | | | | | | | | | Current `bzr` tools do not have any `bzr xmlplugins` command.
| * | Tests: Drop unnecessary check for FindCVS moduleBrad King2022-02-071-6/+2
| | |
| * | Tests: Remove always-true condition enabling CTest.Update* testsBrad King2022-02-071-128/+125
| | |
| * | Tests: Remove unused CVS tool discoveryBrad King2022-02-071-20/+0
| | | | | | | | | | | | | | | | | | 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`.
* | | Merge topic 'GoogleTest-discover-type-params'Brad King2022-02-085-33/+47
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | GoogleTest: Change format for typed testsEvgeniy Shcherbina2022-02-074-42/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | GoogleTest: Fix type param tests for suites with many casesEvgeniy Shcherbina2022-02-075-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | Merge topic 'GoogleTest-discover-spaces-in-parameters' into release-3.23Brad King2022-02-043-0/+9
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd6b8fa40e GoogleTest: Preserve spaces in test parameters Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6941
| * \ \ \ Merge topic 'test-mfc-explicit' into release-3.23Brad King2022-02-041-103/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9d621ceba1 Tests: Run MFC test only when explicitly enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6943
| * \ \ \ \ Merge topic 'ci-minor-cleanups' into release-3.23Brad King2022-02-033-1/+7
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 040c509bce gitlab-ci: clarify name of windows fragment for building with ninja bd14f07ce9 Tests: Skip Clang PCH_INSTANTIATE_TEMPLATES test in MSVC ABI c26b064b8c Tests: Suppress MSVC CRT deprecation warnings in pseudo_llvm-rc Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6947
* | \ \ \ \ \ Merge topic 'allow_manifest_as_content'Brad King2022-02-073-1/+11
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | feebc8394f Windows: Allow manifest files to be bundled as content Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6939
| * | | | | | | Windows: Allow manifest files to be bundled as contentAron Yu2022-02-043-1/+11
| | | | | | | |
* | | | | | | | Merge topic 'cmcmd-end-of-options-delimiter'Brad King2022-02-078-2/+25
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | | | cmcmd: add end of options delimiter to cmake -E commandsPeter Würth2022-02-038-2/+25
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements a -- delimiter, that indicates the end of options (starting with a dash -) of a command and separates them from the subsequent operands (positional arguments). The following commands are affected: - env: Implemented the -- delimiter. - cat: The -- delimiter was already kind of considered, but its occurence did not stop the options parsing. - rm: Here the command already implemented the -- delimiter as specified, but it was not documented. Fixes #22970
* | | | | | | Merge topic 'test-ctest_build-subdir-target'Brad King2022-02-074-29/+16
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | | | Tests: Move CTest.BuildCommand.ProjectInSubdir into RunCMake.ctest_buildBrad King2022-02-044-29/+16
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | The former duplicates code that is now part of the infrastructure in the latter. The latter can also explicitly verify the results.
* | | | | | | Merge topic 'test-download-server-timeout'Brad King2022-02-072-1/+7
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8809183d58 Tests: Optionally extend RunCMake.ExternalProject download server timeout Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6952
| * | | | | | Tests: Optionally extend RunCMake.ExternalProject download server timeoutBrad King2022-02-042-1/+7
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the `RunCMake.ExternalProject` test cases use a download server implemented in Python. Normally we wait up to 30 seconds for it to start. However, on some machines running many tests concurrently, the download server may take longer than that to start. Add an undocumented cache entry to use on those machines to extend the timeout.
* | | | | | Merge topic 'post-rel-dev'Brad King2022-02-044-3/+37
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9a48012f93 Configure CMake itself with policies through CMake 3.22 a5a9687799 export: Increase maximum policy version in exported files to 3.22 a9ffded98c Add deprecation warnings for policies CMP0097 and below Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !6948
| * | | | | | Add deprecation warnings for policies CMP0097 and belowBrad King2022-02-034-3/+37
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The OLD behaviors of all policies are deprecated, but only by documentation. Add an explicit deprecation diagnostic for policies introduced in CMake 3.16 and below to encourage projects to port away from setting policies to OLD.
* | | | | | Merge topic 'ep-patch-USES_TERMINAL'Brad King2022-02-042-9/+13
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cbb87e0a2c ExternalProject: Add support for USES_TERMINAL_PATCH keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6940
| * | | | | | ExternalProject: Add support for USES_TERMINAL_PATCH keywordCraig Scott2022-02-032-9/+13
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the patch step into line with all the others which already had their own `USES_TERMINAL_<step>` keyword. All steps (including patch) already have their own `LOG_<step>` keyword too, so the lack of `USES_TERMINAL_PATCH` was inconsistent.
* | | | | | Merge topic 'GoogleTest-discover-spaces-in-parameters'Brad King2022-02-043-0/+9
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | fd6b8fa40e GoogleTest: Preserve spaces in test parameters Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6941
| * | | | | GoogleTest: Preserve spaces in test parametersEvgeniy Shcherbina2022-02-033-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before the fix the gtest_discover_tests() function would strip the user data in test parameters (everything to the right of GetParam()) of spaces. Now the parameters aren't altered in any way. Fixes #23058
* | | | | | Merge topic 'test-mfc-explicit'Brad King2022-02-041-103/+1
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | / | | |_|_|/ | |/| | | | | | | | | | | | | 9d621ceba1 Tests: Run MFC test only when explicitly enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6943
| * | | | Tests: Run MFC test only when explicitly enabledBrad King2022-02-031-103/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we used a complicated heuristic to decide whether or not to run the MFC test, but it sometimes decided incorrectly to run the test. Since that was first written, we have developed a convention for other tests to enable them via undocumented cache entries that are added only on machines known to meet the tests' requirements. Do that for MFC.
* | | | Merge topic 'ci-minor-cleanups'Brad King2022-02-033-1/+7
|\ \ \ \ | |_|/ / |/| | / | | |/ | |/| | | | | | | | | | | | | 040c509bce gitlab-ci: clarify name of windows fragment for building with ninja bd14f07ce9 Tests: Skip Clang PCH_INSTANTIATE_TEMPLATES test in MSVC ABI c26b064b8c Tests: Suppress MSVC CRT deprecation warnings in pseudo_llvm-rc Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6947
| * | Tests: Skip Clang PCH_INSTANTIATE_TEMPLATES test in MSVC ABIBrad King2022-02-022-1/+3
| | |
| * | Tests: Suppress MSVC CRT deprecation warnings in pseudo_llvm-rcBrad King2022-02-021-0/+4
| |/
* | Merge topic 'cmake-ignore-prefix-path'Brad King2022-02-036-0/+60
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 201d8c4298 find_*(): Add CMAKE_IGNORE_PREFIX_PATH variable bd805a51ae Refactor: Keep track of prefixes in cmSearchPath Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !6880
| * | find_*(): Add CMAKE_IGNORE_PREFIX_PATH variableKyle Edwards2022-02-026-0/+60
| |/ | | | | | | Fixes: #20878
* | CMakePresets.json: Ensure configurePreset is reachable from current fileKyle Edwards2022-02-0210-0/+43
|/
* Merge topic 'cuda_generic_arch_all'Brad King2022-02-021-34/+46
|\ | | | | | | | | | | | | | | 8f64df0a7c CUDA: Generic all and all-major support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !6816
| * CUDA: Generic all and all-major supportRaul Tambre2022-02-011-34/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 14d8a276 (CUDA: Support nvcc 11.5 new -arch=all|all-major flags, 2021-08-17) added all and all-major options to CUDA_ARCHITECTURES. These are fairly generic and likely to see real-world use by distributors. Thus it's desirable to support these also for Clang and older NVCC versions. The supported architectures are dependent on the toolkit version. We determine the toolkit version prior to compiler detection. For NVCC we get the version from the vendor identification output, but for Clang we need to invoke NVCC separately. The architecture information is mostly based on the Wikipedia list with the earliest supported version being CUDA 7.0. This could be documented and expanded in the future to allow projects to query CUDA toolkit version and architecture information. For Clang we additionally constrain based on its support. Additionally the architecture mismatch detection logic is fixed, improved and updated for generic support: * Commit 01428c55 (CUDA: Fail fast if CMAKE_CUDA_ARCHITECTURES doesn't work during detection, 2020-08-29) enabled CMAKE_CUDA_COMPILER_ID_REQUIRE_SUCCESS if CMAKE_CUDA_ARCHITECTURES is specified. This results in CMakeDetermineCompilerID.cmake printing the compiler error and our code for presenting the mismatch in a user-friendly way being useless. The custom logic seems preferable so go back to not enabling it. * Commit 14d8a276 (CUDA: Support nvcc 11.5 new -arch=all|all-major flags, 2021-08-17) tried to support CMP0054 but forgot to add x to the interpolated result. Thus the conditions would always evaluate to false. This is fixed as a byproduct of removing NVIDIA specific checks, improving the error message and replacing architectures_mode with a simpler architectures_explicit. Visual Studio support omits testing the flags during detection due to complexities in determining the toolkit version when using it. A long-term proper implementation would be #23161. Implements #22860.
* | Merge topic 'dotnet_ref_in_sdk'Brad King2022-02-021-1/+4
|\ \ | | | | | | | | | | | | | | | | | | 5ee3154f65 VS: .Net SDK Style projects can add Reference to dlls Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6932
| * | VS: .Net SDK Style projects can add Reference to dllsSumit Bhardwaj2022-02-011-1/+4
| |/ | | | | | | | | | | | | | | When support for `DOTNET_SDK` was added, only a minimal set of options were built in. Based on user feedback, support for reference to dlls (not just projects) is needed. That support is added here. Fixes: #23166
* | Merge topic 'ep-redownload-on-SOURCE_DIR-change'Brad King2022-02-024-5/+45
|\ \ | | | | | | | | | | | | | | | | | | d3477eba06 ExternalProject: Rerun download on SOURCE_DIR change Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6926