Показывать вывод EXECUTE_PROCESS для таких команд, как dir или echo, в stdout

Я хотел бы напрямую видеть вывод команды, запущенной 9X_cmake командой EXECUTE_PROCESS на stdout во время работы программы.

У 9X_cmake меня есть следующий тестовый файл CMakeLists.txt

PROJECT(TEST) cmake_minimum_required(VERSION 2.8) EXECUTE_PROCESS(COMMAND dir) 

При 9X_cmake запуске из командной строки выдает следующее

D:\tmp\testCMake\_build>"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe" . -- Configuring done -- Generating done -- Build files have been written to: D:/tmp/testCMake/_build 

Я 9X_cmake-gui хотел бы видеть вывод dir прямо на консоли.

Я 9X_cmake-gui знаю, что могу записать вывод, используя 9X_cmake-gui аргументы OUTPUT_VARIABLE и ERROR_VARIABLE. Но это дает результат в конце 9X_cmake выполнения команды.

Согласно документации 9X_cmake-gui вывод обычно должен проходить через

Если 9X_cmake-gui нет параметров OUTPUT_ * или ERROR_ * учитывая, что 9X_cmake-gui вывод будет передан соответствующие трубы 9X_cmake CMake сам процесс.

Я использую CMake 2.8.3 9X_cmake-gui в Windows Vista

12
0
1
Общее количество ответов: 1

Ответ #1

Ответ на вопрос: Показывать вывод EXECUTE_PROCESS для таких команд, как dir или echo, в stdout

Попробуйте:

execute_process(COMMAND cmd /c dir) 

вместо этого. 'dir' - это встроенная 9X_cmake команда оболочки. «execute_process» ожидает 9X_cmake-gui имя файла * .exe в качестве первого аргумента 9X_cmake после КОМАНДЫ. (Или какой-нибудь exe, доступный 9X_cmake-gui в PATH.)

Фактически, если вы попытаетесь 9X_cmake-gui покопаться и выяснить, что не так с вашим 9X_cmake-gui исходным вызовом execute_process ...

execute_process(COMMAND dir RESULT_VARIABLE rv) message("rv='${rv}'") 

... вы 9X_cmake-gui получите такой результат:

rv='The system cannot find the file specified' 

Это примерно то, что 9X_cmake вы получите, если передадите dir в вызов 9X_cmake WIN32 CreateProcess.

14
0