cmake: In -P mode ignore extra paths on the command line

Fixes: #23748
This commit is contained in:
Robert Maynard
2022-07-20 17:03:50 -04:00
committed by Brad King
parent c362cba566
commit 846a650ff7
4 changed files with 15 additions and 1 deletions

View File

@@ -1796,7 +1796,8 @@ void cmake::SetHomeDirectoryViaCommandLine(std::string const& path)
}
auto prev_path = this->GetHomeDirectory();
if (prev_path != path && !prev_path.empty()) {
if (prev_path != path && !prev_path.empty() &&
this->GetWorkingMode() == NORMAL_MODE) {
this->IssueMessage(MessageType::WARNING,
cmStrCat("Ignoring extra path from command line:\n \"",
prev_path, "\""));

View File

@@ -0,0 +1,6 @@
^-- CMAKE_ARGC='5'
-- CMAKE_ARGV1='-P'
-- CMAKE_ARGV2='[^']*/Tests/RunCMake/CommandLine/P_args.cmake'
-- CMAKE_ARGV3='relative/path'
-- CMAKE_ARGV4='[^']*/Tests/RunCMake/CommandLine'
-- CMAKE_ARGV5=''$

View File

@@ -0,0 +1,6 @@
message(STATUS "CMAKE_ARGC='${CMAKE_ARGC}'")
message(STATUS "CMAKE_ARGV1='${CMAKE_ARGV1}'")
message(STATUS "CMAKE_ARGV2='${CMAKE_ARGV2}'")
message(STATUS "CMAKE_ARGV3='${CMAKE_ARGV3}'")
message(STATUS "CMAKE_ARGV4='${CMAKE_ARGV4}'")
message(STATUS "CMAKE_ARGV5='${CMAKE_ARGV5}'")

View File

@@ -52,6 +52,7 @@ run_cmake_command(G_no-arg ${CMAKE_COMMAND} -B DummyBuildDir -G)
run_cmake_command(G_bad-arg ${CMAKE_COMMAND} -B DummyBuildDir -G NoSuchGenerator)
run_cmake_command(P_no-arg ${CMAKE_COMMAND} -P)
run_cmake_command(P_no-file ${CMAKE_COMMAND} -P nosuchscriptfile.cmake)
run_cmake_command(P_args ${CMAKE_COMMAND} -P "${RunCMake_SOURCE_DIR}/P_args.cmake" relative/path "${RunCMake_SOURCE_DIR}")
run_cmake_command(P_arbitrary_args ${CMAKE_COMMAND} -P "${RunCMake_SOURCE_DIR}/P_arbitrary_args.cmake" -- -DFOO -S -B --fresh)
run_cmake_command(P_fresh ${CMAKE_COMMAND} -P "${RunCMake_SOURCE_DIR}/P_fresh.cmake" --fresh)