Merge topic 'cmake-E-time-quoting'
1787269e
cmake: Fix `-E time` argument passing to child
This commit is contained in:
commit
563a6c7be0
|
@ -0,0 +1,7 @@
|
|||
cmake-E-time-quoting
|
||||
--------------------
|
||||
|
||||
* The :manual:`cmake(1)` ``-E time`` command now properly passes arguments
|
||||
with spaces or special characters through to the child process. This
|
||||
may break scripts that worked around the bug with their own extra
|
||||
quoting or escaping.
|
|
@ -554,7 +554,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
|
|||
// Clock command
|
||||
else if (args[1] == "time" && args.size() > 2)
|
||||
{
|
||||
std::string command = cmJoin(cmMakeRange(args).advance(2), " ");
|
||||
std::vector<std::string> command(args.begin()+2, args.end());
|
||||
|
||||
clock_t clock_start, clock_finish;
|
||||
time_t time_start, time_finish;
|
||||
|
@ -562,7 +562,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
|
|||
time(&time_start);
|
||||
clock_start = clock();
|
||||
int ret =0;
|
||||
cmSystemTools::RunSingleCommand(command.c_str(), 0, 0, &ret);
|
||||
cmSystemTools::RunSingleCommand(command, 0, 0, &ret);
|
||||
|
||||
clock_finish = clock();
|
||||
time(&time_finish);
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1,3 @@
|
|||
^CMake Error: cmake version .*
|
||||
Usage: .* -E <command> \[arguments\.\.\.\]
|
||||
Available commands:
|
|
@ -0,0 +1,3 @@
|
|||
^hello world
|
||||
Elapsed time: [^
|
||||
]*$
|
|
@ -12,6 +12,9 @@ run_cmake_command(E_echo_append ${CMAKE_COMMAND} -E echo_append)
|
|||
run_cmake_command(E_rename-no-arg ${CMAKE_COMMAND} -E rename)
|
||||
run_cmake_command(E_touch_nocreate-no-arg ${CMAKE_COMMAND} -E touch_nocreate)
|
||||
|
||||
run_cmake_command(E_time ${CMAKE_COMMAND} -E time ${CMAKE_COMMAND} -E echo "hello world")
|
||||
run_cmake_command(E_time-no-arg ${CMAKE_COMMAND} -E time)
|
||||
|
||||
run_cmake_command(E___run_iwyu-no-iwyu ${CMAKE_COMMAND} -E __run_iwyu -- command-does-not-exist)
|
||||
run_cmake_command(E___run_iwyu-bad-iwyu ${CMAKE_COMMAND} -E __run_iwyu --iwyu=iwyu-does-not-exist -- command-does-not-exist)
|
||||
run_cmake_command(E___run_iwyu-no--- ${CMAKE_COMMAND} -E __run_iwyu --iwyu=iwyu-does-not-exist command-does-not-exist)
|
||||
|
|
Loading…
Reference in New Issue