summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
Commit message (Collapse)AuthorAgeFilesLines
* cxxmodules: detect and message about non-compiled sourcesBen Boeckel2023-09-126-1/+37
| | | | | | | | Previously an internal error was raised which ended up causing an internal exception to be thrown. This is a typo situation that should fall into an explicit error. Fixes: #25207
* list(INSERT): restore old behaviorMarc Chevrier2023-08-171-0/+47
| | | | Fixes: #25191
* Apple Text Stubs (.tbd): various fixesMarc Chevrier2023-08-111-6/+6
| | | | | | | * ensure tapi lookup is applied only for concerned toolchains * fix typos in tests Fixes: #25182
* VS: Select latest Windows SDK even when targeting Windows 8.1 and belowBrad King2023-08-102-5/+9
| | | | | | | | | The policy added by commit f90c8ab54e (VS: Select latest available Windows SDK version by default, 2023-04-03, v3.27.0-rc1~206^2~1) applied only when targeting Windows 10+. Apply it to older versions too. Fixes: #25170 Issue: #16202
* VS: Teach CMAKE_GENERATOR_PLATFORM to support Windows 8.1 SDK selectionBrad King2023-08-101-0/+11
| | | | | | | Honor an explicit `version=8.1` field value regardless of the Windows target version. Issue: #25170
* VS: Teach CMAKE_GENERATOR_PLATFORM to use Windows 10 SDKs for older versionsBrad King2023-08-109-24/+33
| | | | | | | Honor an explicit `version=` field selecting a Windows 10 SDK regardless of the Windows target version. Issue: #25170
* Tests: Remove redundant condition in RunCMake.GeneratorPlatform testBrad King2023-08-101-23/+21
|
* file(GENERATE): Restore INPUT|CONTENT parse checkingEvan Wilde2023-08-074-0/+10
| | | | | | | | | | | | | | | | | | | | | | Refactoring in commit bff468c988 (cmFileCommand: Use cm::optional for keyword argument presence, 2022-06-30, v3.25.0-rc1~512^2) accidentally broke the check that the input argument is either `INPUT` or `CONTENT`. The check is supposed to fail when arguments are passed in the wrong order. For example: file(GENERATE OUTPUT ... TARGET <target> CONTENT <content>) Prior to this fix, the input method would be CONTENT, but because the first parsed keyword is not `CONTENT`, `inputIsContent` would be false. The first parsed keyword isn't INPUT either, so we would not continue into the error condition. CMake would then try to handle this as an input file, when there isn't one, resulting in uninitialized memory usage and segfaults or corruption later on. Fixes: #25169
* VS: Revert "Add CMake input files to ZERO_CHECK"Brad King2023-08-027-255/+11
| | | | | | | | | | | Since commit df58dbb0e9 (VS: Add CMake input files to ZERO_CHECK, 2023-03-19, v3.27.0-rc1~157^2), projects that specify the same file both as input to `configure_file` and as the `MAIN_DEPENDENCY` of a custom command fail to configure. Revert the change pending further investigation. Add a test case demonstrating the problem. Issue: #24557 Fixes: #25149
* CTest: Fix regression in calculating test timeoutKyle Edwards2023-07-242-0/+13
| | | | Fixes: #25120
* Tests/RunCMake/CXXModules: add a test for issue #25112Ben Boeckel2023-07-225-0/+39
| | | | | Add a test case for C++ `OBJECT` libraries providing modules to consumers.
* Genex: Restore REMOVE_DUPLICATES preservation of empty elementsBrad King2023-07-123-0/+10
| | | | | | | | | Refactoring in commit 72d116ee68 (GenEx: list oriented genexes use cmList class, 2023-03-29, v3.27.0-rc1~205^2) accidentally caused empty elements to be dropped by the `REMOVE_DUPLICATES` genex. Fix it and add a test case. Fixes: #25080
* Ninja: include module mapper flags in `compile_commands.json`Ben Boeckel2023-07-096-0/+66
| | | | Fixes: #24618
* Merge topic 'FetchContent-unparsed-arguments' into release-3.27Brad King2023-06-304-4/+4
|\ | | | | | | | | | | | | | | | | 9ede4cab2b FetchContent: Protect ExternalProject keywords from unknown arguments Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Craig Scott <craig.scott@crascit.com> Merge-request: !8598
| * FetchContent: Protect ExternalProject keywords from unknown argumentsBrad King2023-06-294-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | `ExternalProject_Add` treats all keyword arguments as multi-valued. FetchContent re-orders some keyword arguments w.r.t. unparsed arguments. Add an internal keyword argument to separate the keyword values from following unparsed arguments. This was exposed by commit 550f63447d (ExternalProject/FetchContent: Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) by adding `GIT_REPOSITORY` to the set of re-ordered keyword arguments. This caused its value to absorb following unparsed arguments. Fixes: #25029
* | Merge topic 'vs-cxxmodules-same-src-name' into release-3.27Brad King2023-06-306-0/+42
|\ \ | |/ |/| | | | | | | | | | | b9c99830c5 VS: Fix C++ modules in source files with the same name Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8596
| * VS: Fix C++ modules in source files with the same nameBrad King2023-06-286-0/+42
| | | | | | | | | | | | | | | | | | When multiple source files in a single target have the same name, we already set `ObjectFileName` explicitly to avoid a `.obj` collision. For C++ module sources, set `Module{Output,Dependencies}File` to avoid `.ifc` and `.module.json` collisions. Fixes: #25038
* | Merge topic 'support_nvhpc_versions_without_isystem' into release-3.27Brad King2023-06-266-1/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | f73ae7c510 NVHPC: Support nvfortran versions that don't support isystem Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8588
| * | NVHPC: Support nvfortran versions that don't support isystemRobert Maynard2023-06-236-1/+12
| |/ | | | | | | Fixes: #25019
* | link dependencies: deactivate the featureMarc Chevrier2023-06-232-3/+4
|/ | | | | | | Unfortunately it breaks in combination with LTO due to a bug in the GNU linker. Fixes: #25014
* list(): restore SUBLIST behaviorMarc Chevrier2023-06-161-0/+51
| | | | Fixes: #25002
* Tests: Require git to enable RunCMake.CMP0150 testBrad King2023-06-121-1/+4
| | | | | | The test added by commit 550f63447d (ExternalProject/FetchContent: Support relative remote URLs, 2023-04-21, v3.27.0-rc1~156^2) covers Git-specific functionality, and requires a `git` tool to be available.
* Merge topic 'add_test-empty-args' into release-3.27Brad King2023-06-123-0/+24
|\ | | | | | | | | | | | | | | 1df3287bf6 add_test: Restore support for empty test arguments Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8551
| * add_test: Restore support for empty test argumentsMarc Chevrier2023-06-093-0/+24
| | | | | | | | | | | | | | | | This was regressed by refactoring in commit e08ba229ee (CMake code rely on cmList class for CMake lists management (part. 1), 2023-04-14, v3.27.0-rc1~174^2). Fix it and add a test case. Fixes: #24986
* | Makefiles: quote `$(COLOR)` expansionsBen Boeckel2023-06-082-0/+15
|/ | | | | | | | | | | | | | | | | This handles the case where `COLOR` is set to some ANSI-like color sequence in the ambient environment. These sequences tend to include `;` which terminates the command and tries to use the next component (typically an integer, possibly with a trailing `m`) with errors like: /bin/sh: line 1: 2: command not found /bin/sh: line 1: 255: command not found /bin/sh: line 1: 221: command not found /bin/sh: line 1: 255m: command not found Also add a test that sets `COLOR` in the environment which affects the generated Makefiles behavior. See: https://discourse.cmake.org/t/cmake-failing-gcc-compiler-checks/8277
* Merge topic 'verify-interface-header-sets-skip-linting'Kyle Edwards2023-06-063-0/+9
|\ | | | | | | | | | | | | 36ec89639a VERIFY_INTERFACE_HEADER_SETS: Skip header files that have SKIP_LINTING Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8540
| * VERIFY_INTERFACE_HEADER_SETS: Skip header files that have SKIP_LINTINGKyle Edwards2023-06-063-0/+9
| | | | | | | | Fixes: #24972
* | Merge topic 'Apple-tbd-runpath-handling'Brad King2023-06-062-1/+9
|\ \ | |/ |/| | | | | | | | | bfa5b430b3 Apple text-based stubs: ensure runpath is correctly defined Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8536
| * Apple text-based stubs: ensure runpath is correctly definedMarc Chevrier2023-06-042-1/+9
| | | | | | | | This is a complement to !8204.
* | Merge topic 'file-api-query-command'Brad King2023-06-056-0/+100
|\ \ | | | | | | | | | | | | | | | | | | | | | 99b2ccf80d cmake_file_api: New project command Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8530
| * | cmake_file_api: New project commandCraig Scott2023-06-056-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | Projects can use the new command to request file API replies for the current run. No query files are generated, the query is tracked internally. Replies are created in the file system at generation time in the usual way. Fixes: #24951
* | | Merge topic 'orkun_24968_02_06_2023'Brad King2023-06-051-4/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3e462202a7 Test: Generate pseudo linters generator independent Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8532
| * | | Test: Generate pseudo linters generator independentOrkun Tokdemir2023-06-021-4/+6
| | |/ | |/| | | | | | | Fixes: #24968
* | | Merge topic 'ctest-timeout-signal'Brad King2023-06-0522-1/+241
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 54c5654f7d ctest: Optionally terminate tests with a custom signal on timeout e38c05688e CTest/cmProcess: Adopt field tracking reason for the process timeout 25c1468314 cmCTestTestHandler: Remove outdated comment 41e8507ab7 IWYU: Add mapping for bits/chrono.h to chrono Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8472
| * | ctest: Optionally terminate tests with a custom signal on timeoutBrad King2023-06-0222-1/+241
| | | | | | | | | | | | | | | | | | | | | | | | CTest normally terminates test processes on timeout using `SIGKILL`. Offer tests a chance to exit gracefully, on platforms supporting POSIX signals, by setting `TIMEOUT_SIGNAL_{NAME,GRACE_PERIOD}` properties. Fixes: #17288
* | | cxxmodules: remove `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variableBen Boeckel2023-06-0139-165/+13
| |/ |/| | | | | It is now subsumed by the UUID setting completely.
* | Merge topic 'remove-header-unit-fileset-type'Brad King2023-06-0126-139/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7b62a83c6f cxxmodules: update the experimental UUID 6ff5cdc533 cxxmodules: remove support for `CXX_MODULE_HEADER_UNITS` filesets Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8510
| * | cxxmodules: update the experimental UUIDBen Boeckel2023-05-3110-10/+10
| | | | | | | | | | | | | | | Syntactic support for C++ header units has been removed, so a new UUID is warranted.
| * | cxxmodules: remove support for `CXX_MODULE_HEADER_UNITS` filesetsBen Boeckel2023-05-3116-129/+5
| |/ | | | | | | | | There's no backing implementation for header units anyways, so just remove it for now.
* | Merge topic 'cmake-compile-no-warning-as-error'Brad King2023-06-011-0/+4
|\ \ | |/ |/| | | | | | | | | | | | | da27ff1e96 Preserve --compile-no-warning-as-error in automatic CMake re-runs e0b48284a1 Xcode: Internally uses -S instead of -H to specify source directory Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8522
| * Preserve --compile-no-warning-as-error in automatic CMake re-runsBrad King2023-05-301-0/+4
| | | | | | | | | | | | | | | | When the build system re-runs `cmake` to regenerate itself, preserve the `--compile-no-warning-as-error` option if it was used when `cmake` was last explicitly invoked. Normally such settings are preserved in the cache, but the purpose of this option is to be beyond the reach of project code.
* | Merge topic 'orkun_24848_19_05_2023'Brad King2023-05-312-0/+34
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 2bb3d9b644 Autogen: Fix multi-config generated file issue 3bd605f3d0 Autogen: Optimize cmake_autogen execution for CROSS_CONFIG usage f2f21c5752 Improve Const Correctness Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8507
| * | Autogen: Fix multi-config generated file issueOrkun Tokdemir2023-05-272-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | The default config was an empty string when a `multi-config` generator is used. An if check was added for those situations. If a source file has a specific config configuration, it is used with `$<CONFIG>` in the `multi-config` generator usage. Fixes: #24848
* | | Merge topic 'cmake-verbose-print-build-tool-command'Brad King2023-05-311-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8451a3f0b5 cmGlobalGenerator: use a stream for output in `Build` e060666531 cmake: write the build command itself with `--verbose` b017c9f127 cmGlobalGenerator: fix off-by-one for `&&` command joining c715fd8d76 cmGlobalGenerator: quote commands in `::Build` output d6c0e827bc cmGlobalGenerator: add a `QuotedPrintable` method for commands 28ee3bef34 cmGlobalGenerator: add missing spaces in output 465ab8d872 cmGlobalGenerator: use `cmStrCat` in `::Build` 81d45dabc4 cmOutputConverter: add a `static` version of `EscapeForShell` Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !8183
| * | | cmGlobalGenerator: use a stream for output in `Build`Ben Boeckel2023-05-271-1/+1
| | | | | | | | | | | | | | | | | | | | This allows output to show up in output immediately instead of being batched.
* | | | cmake: Add debuggerGlen Chung2023-05-3018-1/+37
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Depends on cppdap and jsoncpp. - Add --debugger argument to enable the Debugger. - Add --debugger-pipe argument for DAP traffics over named pipes. - Support breakpoints by filenames and line numbers. - Support exception breakpoints. - Call stack shows filenames and line numbers. - Show Cache Variables. - Show the state of currently defined targets, tests and directories with their properties. - Add cmakeVersion to DAP initialize response. - Include unit tests. Co-authored-by: Ben McMorran <bemcmorr@microsoft.com>
* | | Optionally exclude implicit link directories via environmentBrad King2023-05-253-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | A misconfigured compiler may pass extraneous implicit link directories to its linker. If they are in `CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES`, CMake may generate extra `-L` flags on mixed-language link lines that break linking. Add an environment variable that users can set to work around such misconfiguration of their compilers.
* | | cxxmodules: Fix exported path to installed module sources in subdirsTyler2023-05-2318-6/+64
| | | | | | | | | | | | | | | | | | | | | | | | When generating the `IMPORTED_CXX_MODULES_[CONFIG]` target property, there was a missing path separator after a non-empty relative directory part of the path to a module source file. Co-authored-by: Brad King <brad.king@kitware.com>
* | | cxxmodules: Do not expect collator install scripts with no CXX_MODULESTyler2023-05-2312-6/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling `install(EXPORT)` with the `CXX_MODULES_DIRECTORY` parameter leads to installation rules being generated which `include()` CMake scripts that set the `IMPORTED_CXX_MODULES_[CONFIG]` target property for relevant targets. However, these scripts don't get generated for targets in an export set which don't have any C++20 modules. When the installation rules attempt to `include()` the missing scripts, the install fails. Co-authored-by: Brad King <brad.king@kitware.com>
* | | Tests: Improve RunCMake.CXXModules expectation matching and error reportingBrad King2023-05-2312-32/+78
| | |