2011-03-14 6 views
8

Me gustaría ver directamente la salida de un comando iniciado por el comando EXECUTE_PROCESS en stdout mientras se ejecuta el programa.Mostrar salida EXECUTE_PROCESS para comandos como dir o echo en stdout

Tengo el siguiente archivo CMakeLists.txt prueba

PROJECT(TEST) 
cmake_minimum_required(VERSION 2.8) 

EXECUTE_PROCESS(COMMAND dir) 

cuando se ejecuta desde la línea de comandos que produce este

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 

me gustaría ver la salida de dir directamente en la consola.

Sé que puedo capturar la salida usando los argumentos OUTPUT_VARIABLE y ERROR_VARIABLE. Pero, eso proporciona el resultado al final de la ejecución del comando.

De acuerdo con la documentación de la salida, debería pasarse a través

Si hay output_ * o * ERROR_ opciones son da la salida será compartida con las tuberías correspondientes del proceso de CMake sí.

estoy usando CMake 2.8.3 en Windows Vista

Respuesta

9

Probar:

execute_process(COMMAND cmd /c dir) 

lugar. 'dir' es un comando de shell incorporado. 'execute_process' espera un nombre de archivo * .exe como primer argumento después de COMMAND. (O algún exe disponibles en el PATH.)

De hecho, si se intenta cavar y averiguar lo que está mal con su llamada execute_process originales ...

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

... obtendrá esta salida:

rv='The system cannot find the file specified' 

que es prácticamente lo que se obtendría si aprobó "dir" a la llamada Win32 CreateProcess.

+0

Tienes razón. No revisé eso. El problema es que todavía no aparece en la GUI de CMake, pero probablemente debería hacer esa otra pregunta. – pkit

Cuestiones relacionadas