Merge topic 'better_handling_of_build_args'

01611f8258 cmake: --build improve detection of no build dir

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7908
This commit is contained in:
Brad King 2022-11-15 13:55:11 +00:00 committed by Kitware Robot
commit 6f9544736a
4 changed files with 11 additions and 19 deletions

View File

@ -522,25 +522,8 @@ int do_build(int ac, char const* const* av)
if (ac >= 3) {
std::vector<std::string> inputArgs;
bool hasPreset = false;
for (int i = 2; i < ac; ++i) {
if (strcmp(av[i], "--list-presets") == 0 ||
cmHasLiteralPrefix(av[i], "--preset=") ||
strcmp(av[i], "--preset") == 0) {
hasPreset = true;
break;
}
}
if (hasPreset) {
inputArgs.reserve(ac - 2);
cm::append(inputArgs, av + 2, av + ac);
} else {
dir = cmSystemTools::CollapseFullPath(av[2]);
inputArgs.reserve(ac - 3);
cm::append(inputArgs, av + 3, av + ac);
}
inputArgs.reserve(ac - 2);
cm::append(inputArgs, av + 2, av + ac);
decltype(inputArgs.size()) i = 0;
for (; i < inputArgs.size() && !nativeOptionsPassed; ++i) {
@ -555,6 +538,11 @@ int do_build(int ac, char const* const* av)
break;
}
}
if (!matched && i == 0) {
dir = cmSystemTools::CollapseFullPath(arg);
matched = true;
parsed = true;
}
if (!(matched && parsed)) {
dir.clear();
if (!matched) {

View File

@ -58,6 +58,8 @@ run_cmake_command(P_fresh ${CMAKE_COMMAND} -P "${RunCMake_SOURCE_DIR}/P_fresh.cm
run_cmake_command(build-no-dir
${CMAKE_COMMAND} --build)
run_cmake_command(build-no-dir2
${CMAKE_COMMAND} --build --target=invalid)
run_cmake_command(build-no-cache
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR})
run_cmake_command(build-unknown-command-short

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1 @@
^Usage: cmake --build <dir> +\[options\] \[-- \[native-options\]\]