CMake: Fix interleaved configure output
message(STATUS) prints output to a buffered stdout, whereas message(NOTICE) or just message() print to unbuffered stderr. We use a mix of message() calls when printing the configuration summary, which caused interleaved output. Because CMake offers no message(FLUSH), we work around the issue by calling execute_process(COMMAND -E echo " ") which does call std::cout << s << std::flush; We seem to have to do it twice, before and after the detailed configuration summary is printed. Pick-to: 6.2 6.3 Change-Id: Ibc075551fc0547073f0696477e54d9b9c1edca97 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
parent
8a56b4ad9b
commit
dc4bc1e575
@ -98,7 +98,12 @@ function(qt_configure_print_summary)
|
||||
"-- Configure with --log-level=STATUS or higher to increase the output verbosity.")
|
||||
endif()
|
||||
|
||||
# Need 2 flushes to ensure no interleaved input is printed due to a mix of message(STATUS)
|
||||
# and message(NOTICE) calls.
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E echo " ")
|
||||
message(STATUS "Configure summary:\n${__qt_configure_reports}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E echo " ")
|
||||
|
||||
file(APPEND "${summary_file}" "${__qt_configure_reports}")
|
||||
endif()
|
||||
if(__qt_configure_notes)
|
||||
|
Loading…
x
Reference in New Issue
Block a user