[CMake] Redirect standard output to file
Eric Noulard
eric.noulard at gmail.com
Fri Apr 13 11:01:48 EDT 2007
2007/4/13, Mathieu Malaterre <mathieu.malaterre at gmail.com>:
> 'lo
>
> I am convinced this is an easy one,
> but I could not figure out how
> to redirect standard output (from a process) into a file. Basically I
> would need to run EXECUTE_PROCESS from within an ADD_CUSTOM_COMMAND
> (run the process and capture output only when all the dependencies are
> met).
If I understand your problem well you
may
1) write the EXECUTE_PROCESS relted command
into a cmake script file using
FILE(WRITE /tmp/executeMe.cmake
"EXECUTE_PROCESS(COMMAND ls
OUTPUT_FILE lsout.txt)"
(look at FILE(xxx command for generating more complex script file)
2) then in your ADD_CUSTOM_COMMAND you call
${CMAKE_CMAKE_COMMAND} -P /tmp/executeMe.cmake
That is CMake "script processing mode".
I did something similar FILE(WRITE a CMake script and then
execute the script with CMake -P there:
http://cvs.savannah.nongnu.org/viewcvs/tsp/make/UsePackageBackup.cmake?root=tsp&view=markup
This script is used to build a "dated" tarball using CPack.
You'll see that the annoying thing when FILE(WRITE a CMake script is
to understand when you need extra "\" .
3) After (and outside) the ADD_CUSTOM_COMMAND you may "parse" output using
FILE(READ lsout.txt OUTPUT_CONTENT)
STRING(REGEX MATCH ${OUTPUT_CONTENT})
--
Erk
More information about the CMake
mailing list