How to forward output from CMake execute_process to CMake's logs?

339 views Asked by At

In my CMake file, I set up a Python test environment:

execute_process(
  COMMAND pip install -U -r ${REQUIREMENTS}
  RESULT_VARIABLE STATUS
)

The issue is, I usually don't need its verbose OUTPUT. So I want to optionally hide it. This is what I've done:

if(SHOW_PIP_LOGS)
  execute_process(...)
else()
  execute_process(... OUTPUT_QUIET)
endif()

The thing is, there is already a way to control what logs are shown in CMake: it's --log-level coupled with message(). This way I don't need to manage any logging-related variables. But the command outputs directly to stdout, without going through CMake log system.

Can I somehow forward the output of a command invocation to CMake's logs?

The output must be printed on-line, without buffering everything to a variable first, so that if a pip takes a long time installing packages, I can see what's going on.

0

There are 0 answers