From 3fd25c90fab85fc6aa9949311b13992c63ba7345 Mon Sep 17 00:00:00 2001 From: audiofanatic Date: Mon, 15 Jun 2009 20:23:49 +0200 Subject: Force line buffering for stdout so it stays in sync better with stderr (which is unbuffered) Task-number: 254786 Merge-request: 610 Reviewed-by: Oswald Buddenhagen --- qmake/main.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/qmake/main.cpp b/qmake/main.cpp index fe274c4..7da66ac 100644 --- a/qmake/main.cpp +++ b/qmake/main.cpp @@ -84,6 +84,13 @@ bool qmake_setpwd(const QString &p) int runQMake(int argc, char **argv) { + // stderr is unbuffered by default, but stdout buffering depends on whether + // there is a terminal attached. Buffering can make output from stderr and stdout + // appear out of sync, so force stdout to be line buffered to minimize this without + // hurting performance too much (if at all). This is particularly important for + // things like QtCreator and scripted builds. + setvbuf(stdout, (char *)NULL, _IOLBF, 0); + // parse command line int ret = Option::init(argc, argv); if(ret != Option::QMAKE_CMDLINE_SUCCESS) { -- cgit v0.12