summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CommandLine
Commit message (Collapse)AuthorAgeFilesLines
* cmake: In -P mode ignore flags like `--version` after `--`Robert Maynard2022-07-223-3/+5
| | | | Fixes: #21031
* cmake: In -P mode ignore extra paths on the command lineRobert Maynard2022-07-223-0/+13
| | | | Fixes: #23748
* Tests: Fix test failures for Windows Arm64 platformsNiyas Sait2022-05-111-1/+1
|
* CMake: Use FindPython instead of FindPythonInterp to build CMake itselfKyle Edwards2022-04-212-4/+4
| | | | Fixes: #23444
* Trace: process else and elseif commands correctlyBraulio Valdivielso Martinez2022-03-253-1/+15
| | | | | | | | | | | | | | | | | There have been two bugs reported about the `else` and `elseif` commands in the context of the tracing functionality and the json-v1 format (#23191 #22315). In essence, the reported traces referred to the layer of the stacktrace immediately on top of the expected ones. This MR fixes both issues. My solution adds a new parameter to the `PrintCommandTrace` function, `commandMissingFromStack`, that callers can specify if the command they want to report a trace for is not a regular part of the stack maintained in `cmMakefile`. This is only the case for `else` and `elseif`. The other bug is fixed by having the caller pass a `cmListFileBacktrace`, which helps in getting the right lines, file names... for the reported command. Fixes: #23191 #22315
* cmake: Add --fresh option to clear the cache and start from scratchBrad King2022-03-228-3/+47
| | | | | | | Simplify the workflow to re-run CMake from scratch as if a build tree were never before processed, regardless of whether it has been. Fixes: #23119
* Merge topic 'cmake-P-args'Brad King2022-03-183-4/+17
|\ | | | | | | | | | | | | | | 36056ff5a3 cmake: Improve acceptance of arbitrary arguments in -P script mode Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7083
| * cmake: Improve acceptance of arbitrary arguments in -P script modeBrad King2022-03-173-4/+17
| | | | | | | | | | | | | | The fix in commit e4f1b301fe (cmake: Allow arbitrary args passed to CMake script, 2020-05-04, v3.18.0-rc1~211^2) only applied to "cache" arguments like `-DFOO`. Extend the fix to allow arbitrary arguments that collide with other CMake arguments like `-S` and `-B`.
* | Merge topic 'always_prefer_last_source_dir'Brad King2022-03-181-1/+1
|\ \ | |/ |/| | | | | | | | | | | b44ad7992a cmake: Always prefer the last source directory provided Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7084
| * cmake: Always prefer the last source directory providedRobert Maynard2022-03-171-1/+1
| | | | | | | | Fixes: #23334
* | Merge topic 'color-diagnostics'Brad King2022-03-094-0/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6ab9fbd43b color: Add tests for CMAKE_COLOR_DIAGNOSTICS 78adb1b952 color: Add CMAKE_COLOR_DIAGNOSTICS environment variable 884d9de8b7 color: Introduce CMAKE_COLOR_DIAGNOSTICS variable Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: Frank Dana <ferdnyc@gmail.com> Merge-request: !6990
| * | color: Add tests for CMAKE_COLOR_DIAGNOSTICSBrad King2022-03-084-0/+19
| | |
* | | Merge topic 'cmake-dir-args'Brad King2022-03-0349-30/+84
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | d2e9478321 Tests: Add RunCMake.CommandLine ExplicitiDirs explicit work directory 78e8f11456 cmake: Correct regression in `-B <dir> <src_dir>` 4091d5c58c Tests: Verify RunCMake.CommandLine ExplicitDirs source/build dirs 1b97f8f35c Tests: Clarify RunCMake.CommandLine ExplicitDirs case names Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7030
| * | Tests: Add RunCMake.CommandLine ExplicitiDirs explicit work directoryBrad King2022-03-021-0/+6
| | | | | | | | | | | | | | | | | | | | | Verify that the work directory is not selected as the source or build tree. Issue: #23285
| * | cmake: Correct regression in `-B <dir> <src_dir>`Robert Maynard2022-03-021-0/+1
| | | | | | | | | | | | Fixes: #23285
| * | Tests: Verify RunCMake.CommandLine ExplicitDirs source/build dirsBrad King2022-03-0223-0/+47
| | |
| * | Tests: Clarify RunCMake.CommandLine ExplicitDirs case namesBrad King2022-03-0227-30/+30
| | |
* | | Merge topic 'correct_multiple_source_warnings'Brad King2022-02-187-0/+46
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | 7083b19498 cmake: When given multiple source paths use last instead of first Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7001
| * | cmake: When given multiple source paths use last instead of firstRobert Maynard2022-02-177-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | When given two source paths via `-S` or just directory paths prefer the last one. When the paths are mixed always prefer the last `-S` entry. Fixes: #23238
* | | Merge topic 'cmake-empty-cmd-line-arg'Brad King2022-02-1713-2/+23
|\ \ \ | |/ / | | / | |/ |/| | | | | | | f73457ca2e cmake: Ignore any empty "" command line arguments 67f97f5478 Tests: Add RunCMake helper to run cmake with raw execute_process args Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6980
| * cmake: Ignore any empty "" command line argumentsRobert Maynard2022-02-1613-2/+23
| | | | | | | | | | | | | | Don't treat empty quote arguments("") as the current working directory but instead ignore them. Fixes #23217
* | 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 'trace-global-frame'Brad King2022-02-093-3/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | 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-073-3/+21
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | cmcmd: add end of options delimiter to cmake -E commandsPeter Würth2022-02-037-1/+23
|/ | | | | | | | | | | | | | | 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 'vs-package-restore'Brad King2022-01-242-0/+2
|\ | | | | | | | | | | | | | | | | | | 9aa7831f05 Presets: add resolve packages setting to build presets. b2f8f0bb87 cmGlobalVisualStudio10Generator: Auto restore NuGet packages. 193b8fca52 cmBuildOptions: Split build arguments into separate object. 6a10103493 Help: Update preset schema description for version 3 entries. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6761
| * cmGlobalVisualStudio10Generator: Auto restore NuGet packages.Carsten Rudolph2022-01-222-0/+2
| |
* | cmake: Warn about unnecessary paths on command lineRobert Maynard2022-01-203-0/+14
| | | | | | | | | | | | We can't make it an error as that would break existing behavior. Fixes: #23110
* | Tests: Fix RunCMake.CommandLine toolchain case command lineBrad King2022-01-202-2/+3
| |
* | Add tests that showcase cmake -S limitationsRobert Maynard2022-01-181-0/+13
|/
* FileAPI: Add information on file set installersKyle Edwards2021-10-271-1/+1
|
* Tests/RunCMake/CommandLine: Deal with locales that are different from Englishmakise-homura2021-10-151-0/+6
| | | | | | | | | | RunCMake/CommandLine has problems when ran using language setting differeng from English. This is due to test outputs being compared to English strings, which comparison obviously fails if this language is set to, e.g. Russian. This commit sets locale as "C" prior to running these tests, so messages while testing are generated in correct language and do not fail checks anymore.
* cmake: -E cat stops when an empty file is encounteredJohnny Jazeix2021-09-181-1/+2
| | | | Fixes: #22652
* Deprecate Visual Studio 10 2010 generatorBrad King2021-07-294-0/+12
| | | | | Update documentation to mark the generator deprecated. Add a warning at the end of generation plus an option to turn off the warning.
* Merge topic 'doc-cmake-build-signature'Brad King2021-07-1414-14/+14
|\ | | | | | | | | | | | | 161f1f42d6 Help: Clarify 'cmake --build' signature alternatives Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6343
| * Help: Clarify 'cmake --build' signature alternativesBrad King2021-07-1314-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Documentation added by * commit 4f4f2028b8 (Help: Add documentation for buildPresets and testPresets, 2021-01-13, v3.20.0-rc1~51^2~7) * commit 676ecf0d37 (cmake-presets: Add build and test presets, 2020-12-14, v3.20.0-rc1~51^2~6) used square brackets in the `cmake --build` signature to indicate non-optional alternatives, which is not a typical convention. A common convention is to use parentheses instead, but in this case it is probably clearer to list the two signatures separately. Fixes: #22413
* | cmake: Allow CMAKE_CONFIGURATION_TYPES to be set by environment variableBrad King2021-06-305-0/+16
| | | | | | | | | | | | | | | | When no `CMAKE_CONFIGURATION_TYPES` is explicitly specified while creating a new build tree, check for an environment variable of the same name. Issue: #20983
* | cmake: Allow CMAKE_BUILD_TYPE to be set by environment variableBrad King2021-06-305-0/+18
|/ | | | | | | When no `CMAKE_BUILD_TYPE` is explicitly specified while creating a new build tree, check for an environment variable of the same name. Issue: #20983
* VS: Add Visual Studio 17 2022 generatorBrad King2021-06-251-1/+1
| | | | Fixes: #22339
* cmake: Allow CMAKE_TOOLCHAIN_FILE to be set by environment variableBrad King2021-06-0312-0/+55
| | | | | When no `CMAKE_TOOLCHAIN_FILE` is explicitly specified while creating a new build tree, check for an environment variable of the same name.
* cmCommandLineArgument: OneOrMore mode supports `=` separatorRobert Maynard2021-05-191-2/+1
| | | | Fixes #22187
* cmCommandLineArgument: Understands which commands require partial matchingRobert Maynard2021-05-191-1/+1
| | | | | Allows us to provide better error messages when commands such as `--target` are passed invalid input.
* Merge topic 'cmake_build_and_install_command_error_when_given_bad_arguments'Brad King2021-05-1413-0/+30
|\ | | | | | | | | | | | | | | | | f78b167a23 cmCommandLineArgument: Provide more information syntax error messages 5aa0dec6b0 cmake: `--build` and `--install` error out when encountering bad flags 928cdb17c5 cmCommandLineArgument: Correctly record parsing failures Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6119
| * cmCommandLineArgument: Provide more information syntax error messagesRobert Maynard2021-05-132-2/+2
| |
| * cmake: `--build` and `--install` error out when encountering bad flagsRobert Maynard2021-05-1313-0/+30
| | | | | | | | Fixes #22186
* | cmSystemTools: Improve CreateLink and CreateSymlink error codesBrad King2021-05-075-6/+6
| | | | | | | | | | | | | | | | | | | | | | In commit 7f89053953 (cmSystemTools: Return KWSys Status from CreateLink and CreateSymlink, 2021-04-15) we just took the `-err` from libuv and treated it as a POSIX error. This is accurate on POSIX, but on Windows does not match the POSIX error codes. Use `uv_fs_get_system_error` to get the actual system error code. This requires libuv 1.38 or higher. Require that for Windows, but fall back to the previous approach on POSIX.
* | MSYS: Add support for running under MSYS runtime environmentOrgad Shaneh2021-04-261-2/+2
| | | | | | | | Detect MSYS as CYGWIN, with the required adaptations.
* | Merge topic 'mrjoel/add-missing-not'Brad King2021-04-191-1/+1
|\ \ | |/ | | | | | | | | | | 370bebd921 Add missing 'not' in error messages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6012
| * Add missing 'not' in error messagesJoel Johnson2021-04-161-1/+1
| |
* | cmake: add support for --toolchain command argumentRobert Maynard2021-04-1511-1/+36
| |