mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 03:48:02 +08:00
cmake: --build
and --install
error out when encountering bad flags
Fixes #22186
This commit is contained in:
@@ -532,11 +532,22 @@ int do_build(int ac, char const* const* av)
|
|||||||
for (; i < inputArgs.size() && !nativeOptionsPassed; ++i) {
|
for (; i < inputArgs.size() && !nativeOptionsPassed; ++i) {
|
||||||
|
|
||||||
std::string const& arg = inputArgs[i];
|
std::string const& arg = inputArgs[i];
|
||||||
|
bool matched = false;
|
||||||
|
bool parsed = false;
|
||||||
for (auto const& m : arguments) {
|
for (auto const& m : arguments) {
|
||||||
if (m.matches(arg) && m.parse(arg, i, inputArgs)) {
|
matched = m.matches(arg);
|
||||||
|
if (matched) {
|
||||||
|
parsed = m.parse(arg, i, inputArgs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!(matched && parsed)) {
|
||||||
|
dir.clear();
|
||||||
|
if (!matched) {
|
||||||
|
std::cerr << "Unknown argument " << arg << std::endl;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nativeOptionsPassed) {
|
if (nativeOptionsPassed) {
|
||||||
@@ -806,11 +817,22 @@ int do_install(int ac, char const* const* av)
|
|||||||
for (decltype(inputArgs.size()) i = 0; i < inputArgs.size(); ++i) {
|
for (decltype(inputArgs.size()) i = 0; i < inputArgs.size(); ++i) {
|
||||||
|
|
||||||
std::string const& arg = inputArgs[i];
|
std::string const& arg = inputArgs[i];
|
||||||
|
bool matched = false;
|
||||||
|
bool parsed = false;
|
||||||
for (auto const& m : arguments) {
|
for (auto const& m : arguments) {
|
||||||
if (m.matches(arg) && m.parse(arg, i, inputArgs)) {
|
matched = m.matches(arg);
|
||||||
|
if (matched) {
|
||||||
|
parsed = m.parse(arg, i, inputArgs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!(matched && parsed)) {
|
||||||
|
dir.clear();
|
||||||
|
if (!matched) {
|
||||||
|
std::cerr << "Unknown argument " << arg << std::endl;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,6 +54,14 @@ run_cmake_command(build-no-dir
|
|||||||
${CMAKE_COMMAND} --build)
|
${CMAKE_COMMAND} --build)
|
||||||
run_cmake_command(build-no-cache
|
run_cmake_command(build-no-cache
|
||||||
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR})
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR})
|
||||||
|
run_cmake_command(build-unknown-command-short
|
||||||
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR} -invalid-command)
|
||||||
|
run_cmake_command(build-unknown-command-long
|
||||||
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR} --invalid-command)
|
||||||
|
run_cmake_command(build-unknown-command-partial-match
|
||||||
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR} --targetinvalid)
|
||||||
|
run_cmake_command(build-invalid-target-syntax
|
||||||
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR} --target=invalid)
|
||||||
run_cmake_command(build-no-generator
|
run_cmake_command(build-no-generator
|
||||||
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR}/cache-no-generator)
|
${CMAKE_COMMAND} --build ${RunCMake_SOURCE_DIR}/cache-no-generator)
|
||||||
run_cmake_command(build-bad-dir
|
run_cmake_command(build-bad-dir
|
||||||
@@ -65,6 +73,10 @@ run_cmake_command(install-no-dir
|
|||||||
${CMAKE_COMMAND} --install)
|
${CMAKE_COMMAND} --install)
|
||||||
run_cmake_command(install-bad-dir
|
run_cmake_command(install-bad-dir
|
||||||
${CMAKE_COMMAND} --install dir-does-not-exist)
|
${CMAKE_COMMAND} --install dir-does-not-exist)
|
||||||
|
run_cmake_command(install-unknown-command-short
|
||||||
|
${CMAKE_COMMAND} --install ${RunCMake_SOURCE_DIR} -invalid-command)
|
||||||
|
run_cmake_command(install-unknown-command-long
|
||||||
|
${CMAKE_COMMAND} --install ${RunCMake_SOURCE_DIR} --invalid-command)
|
||||||
run_cmake_command(install-options-to-vars
|
run_cmake_command(install-options-to-vars
|
||||||
${CMAKE_COMMAND} --install ${RunCMake_SOURCE_DIR}/dir-install-options-to-vars
|
${CMAKE_COMMAND} --install ${RunCMake_SOURCE_DIR}/dir-install-options-to-vars
|
||||||
--strip --prefix /var/test --config sample --component pack)
|
--strip --prefix /var/test --config sample --component pack)
|
||||||
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^CMake Error: Invalid syntax used with --target
|
||||||
|
Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^Unknown argument --invalid-command
|
||||||
|
Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^CMake Error: Invalid syntax used with --target
|
||||||
|
Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^Unknown argument -invalid-command
|
||||||
|
Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^Unknown argument --invalid-command
|
||||||
|
Usage: cmake --install <dir> \[options\]
|
@@ -0,0 +1 @@
|
|||||||
|
1
|
@@ -0,0 +1,2 @@
|
|||||||
|
^Unknown argument -invalid-command
|
||||||
|
Usage: cmake --install <dir> \[options\]
|
Reference in New Issue
Block a user