summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
Commit message (Collapse)AuthorAgeFilesLines
* 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
| | |
* | | codespell: Fix typosBrad King2023-05-2214-19/+19
| | |
* | | codespell: Avoid escape sequence that looks like misspelled "nodes"Brad King2023-05-2211-14/+18
| | |
* | | Merge topic 'FileAPI-framework'Brad King2023-05-2251-24/+803
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | b3a6a11e95 fileapi: Extend codemodel targets/compileGroups with Apple frameworks Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8489
| * | fileapi: Extend codemodel targets/compileGroups with Apple frameworksMarc Chevrier2023-05-1951-24/+803
| | | | | | | | | | | | Fixes: #19897
* | | Merge topic 'cxxmodules-private-between-targets'Brad King2023-05-198-0/+39
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d38779df2a ci: Enable RunCMake.CXXModules collation cases in clang jobs 69e4525241 Tests/CXXModules: add example for private modules between targets 18f87c87f8 cmCxxModuleMapper: track whether modules are private or not 56f7d6f827 cmCxxModuleMapper: add a structure to represent BMI locations 8207a3a266 cmDyndepCollation: add a query for visibility of an object's modules e8efcbec8c iwyu: ignore `std::remove_reference` requirements Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8476
| * | | Tests/CXXModules: add example for private modules between targetsBen Boeckel2023-05-188-0/+39
| | | | | | | | | | | | | | | | Adapted from the example in issue #24652 by Ivan Garramona.
* | | | Merge topic 'skip-linting'Brad King2023-05-1816-0/+111
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 775c369420 Autogen: set SKIP_LINTING ON for generated files b480315e0c TargetGenerator: Add SKIP_LINTING source property 993dde925f TargetGenerator: Factor out generation of code check rules 023af4ab2f Improve Const Correctness Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8467
| * | | Autogen: set SKIP_LINTING ON for generated filesOrkun Tokdemir2023-05-166-0/+53
| | | | | | | | | | | | | | | | Fixes: #19772
| * | | TargetGenerator: Add SKIP_LINTING source propertyOrkun Tokdemir2023-05-1610-0/+58
| |/ / | | | | | | | | | | | | | | | | | | The `SKIP_LINTING` source property was added to disable code check for desired source files. The `SKIP_LINTING`includes `cpplint`, `clang-tidy`, \ `cppcheck` and `include-what-you-use`. If `SKIP_LINTING` is set on a source file, the tools mentioned above will not be run on that source file.
* | | Merge topic 'test-xcode'Brad King2023-05-1634-311/+340
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a4d114e8cd Tests: Split some RunCMake.XcodeProject cases into a separate test Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8478
| * | | Tests: Split some RunCMake.XcodeProject cases into a separate testBrad King2023-05-1534-311/+340
| | |/ | |/| | | | | | | | | | | | | The `RunCMake.XcodeProject` has many cases and occasionally fails due to timeout. Move iOS and other device-specific cases to a new `RunCMake.XcodeProject-Device` test.
* | | Merge topic 'msvc-wine-showIncludes'Brad King2023-05-165-0/+16
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | fb3c4715cd Ninja: Restore detection of msvc-wine showIncludes prefix Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: huangqinjin <huangqinjin@gmail.com> Merge-request: !8479
| * | Ninja: Restore detection of msvc-wine showIncludes prefixBrad King2023-05-155-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 8f82e755f3 (Ninja: Fix detection of MSVC showIncludes prefix in Italian, 2023-01-26, v3.26.0-rc1~20^2) our regex no longer matches the output from `msvc-wine`, which uses forward slashes: Note: including file: /path/to/foo.h `cl /showIncludes` under Wine prints paths of the form `Z:\path\to\file`, but the `msvc-wine` wrapper converts them to the form `/path/to/file` so that native Ninja can be used. Update our regex to match the prefix followed by a path with a leading forward slash. Fixes: #24908
| * | Merge topic 'test-xcode-14.3' into release-3.26Brad King2023-04-041-0/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | 3bb46b29fd Tests: Teach RunCMake to ignore Xcode DVTCoreDeviceEnabledState warnings Merge-request: !8392
* | \ \ Merge topic 'system-framework'Brad King2023-05-121-0/+12
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | ad9020a899 Apple Frameworks: honor SYSTEM target property Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8469
| * | | Apple Frameworks: honor SYSTEM target propertyMarc Chevrier2023-05-111-0/+12
| | | | | | | | | | | | | | | | Fixes: #24109
* | | | Tests: Teach ISPC tests to run on macOS arm64 hostBrad King2023-05-103-2/+11
| | | |
* | | | Tests: Fix RunCMake.XcodeProject XcodeSchemaGeneration case on arm64Brad King2023-05-102-1/+2
| | | | | | | | | | | | | | | | | | | | Explicitly specify the xcodebuild scheme destination architecture to match the host.
* | | | Ninja: Fix Fortran INCLUDE directive dependencies when not preprocessingBrad King2023-05-099-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit b0a6161190 (Fortran: Add Fortran_PREPROCESS property, 2020-04-24, v3.18.0-rc1~116^2~3), if `Fortran_PREPROCESS` is `OFF`, the Ninja generator does not properly detect dependencies on sources loaded via the Fortran INCLUDE directive. Fix this and add a test.
* | | | Tests: Teach RunCMake to ignore LLVMFlang -flang-experimental-exec warningBrad King2023-05-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag is needed for now to tell `flang-new` to support creating executables. In our CI job we always pass this flag, but it is not always used. The compiler may warn: flang-new: warning: argument unused during compilation: '-flang-experimental-exec' Teach RunCMake to drop such incidental lines before matching against expected output.