summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/main.cpp7
1 files changed, 7 insertions, 0 deletions
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) {