don't print project messages/warnings/errors

they are meaningless during the cumulative parse we are doing

Task-number: QTBUG-28159
Change-Id: I501e7e9b0066fc3f36543147d71632b0d20cca08
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
don't print warnings from parser & evaluator

they are pretty much noise in lupdate context.
we still print error messages: the ones from the parser are always
genuine, while the ones from the evaluator are at least occasionally
helpful.

Task-number: QTBUG-28159
Change-Id: I6cdb11b51c0a3f569ec430f98a0068f933db903d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
execute some loops even in cumulative mode

we execute foreach loops now. this is (mostly) safe nowadays, because
a previous change added precautions against exponential value list
growth, so it's unlikely that two nested loops would keep the cpu busy
for a day as before.

we continue to exclude forever loops and loops with excessive integer
counts.

Task-number: QTBUG-8550
Change-Id: Iaa116086986cc7fd5023834753f791dd205102e5
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
don't complain about missing include()s during cumulative evaluation

it produces simply too many false positives.

Change-Id: I3dfa109866450babe5c16f84665ad22024d99e42
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
make TR_EXCLUDE work for #include statements as well

Change-Id: I299043c63c6e8b2f24eeee7d3f03a514b96bca5f
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
fix handling of country-less languages like esperanto

it's impossible to instantiate QLocale objects like that, so the
language setting would be simply clobbered. instead, we now convert
between numerical and string codes directly.

unfortunately QLocale has no public api for that. but we are including
private QTranslator headers already anyway, so whatever.

Task-number: QTBUG-14592
Change-Id: I95189c1898aa1fb5520ecf7057521597ed9331f1
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
prune unused obsolete tests

the code has been absorbed into the proper autotest a long time ago.

Task-number: QTBUG-26510
Change-Id: I199b26331645cea51e91cf9f8be15c3d4628aa7b
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fix QUiLoader not applying empty string properties.

Introduced by 6b02fc50ec6a5236f628b08ebeca50e62b22f362 .

Task-number: QTBUG-33130
Change-Id: Ida5ac8c3bf043cb04650680a2fc3777eff3b3f3f
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
don't crash if builddir is suffix of sourcedir (or vice-versa)

Change-Id: I97a6e2ebd51350cbf39c86efa5c26a376c49da95
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/b30273ec4a4ce65794fd402c6e3eb21de7bae1b9)
don't unnecessarily use QFileInfo::filePath()

just directly use the filename we constructed it from.

Change-Id: Ia428a2cb4b192fea6bde62dfbf35361bcfc4b21e
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/571234786a3ff7e8e3a9220f12d22a9f74f7a53c)
implement simple VFS to support caching during project parsing

sync up with qt creator.
this counts as a bugfix, because it makes write_file() and cache() do
something remotely useful.

Change-Id: I833253f81c3159056fab2ff888f293b36cc2ef56
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/b215176da34661969015e4950815fe8297885163)
(cherry picked from qtcreator/66802ef8bf7989dc025e34bf91d93576189c483c)
minor optimization: don't concatenate strings needlessly

Change-Id: Iddec1a818ff9f3ad8b12491100883e433e4b8246
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/12652c20711fd29dcba62b8d5ba71c077d8bd06c)
cache results of feature search

looking up the same files in the same locations over and over again
is a rather significant waste. in particular, looking up the CONFIG
flags that don't correspond with features has a measurable impact on qt
creator's project loading time.

Task-number: QTCREATORBUG-9154
Change-Id: Ibae3d8b7797e706a6416a7d45c77734ab1281b51
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/fa27cd79e05aed4ebd16d5648480cc7d48fefd43)
update m_featureRoots less aggressively

it's not necessary to immediately re-calculate the roots after assigning
QMAKE_PLATFORM - it's sufficient to do it on-demand, so merely
invalidate them. this avoids that we re-calculate them multiple times
without ever using them in between while processing specs with
distributed platform assignments.

Change-Id: If508594764811b96a577fc81c5ded34ab0453148
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
(cherry picked from qtcreator/28df27d924bb407791a76de8159c9ffa6efde283)
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
make Makefiles not depend on .qmake.super

sync with qmake. this is a no-op in lupdate.

Change-Id: Id5158d7e272fdee4f4a041fb7c828295a0a86684
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/d135a311a34e693d761a3607663b0879be9bbf65)
find features/ under mkspecs/ of source & build root

we were finding features/ directly in the source & build root, and we
were finding features/ under mkspecs/ from $QMAKEPATH and other mkspecs
locations, but we omitted the "transitive hull". this was
counterintuitive.

Change-Id: I9823e6606467c98f264c81385250da92311f51ca
(cherry picked from qtbase/0bf65180b8710e4516496d0bc53a265ff0dd6a01)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
make .qmake.{super,cache,conf} find "anchored" features

these files function as "anchors" for mkspecs/ and features/ directories
used by projects which load these files. ironically, these files didn't
see these feature files themselves.

Change-Id: I590855eb4a9d2c72b9abfcaa431d2f85a719c6e2
(cherry picked from qtbase/7456dfb4552c4e4f900af9fa8923828a23737280)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
remove pointless string conversion

Change-Id: I1640083007ed0c428dfb8ab5ce8b68a7d7e2a749
(cherry picked from qtbase/d1b1b31c9237e0bd11c61fc54ad45551b7d862da)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
introduce /src qmake property variants

this is for shadow builds during build time, where the respective files
are expected in the source dir.

Change-Id: I18dcfbdef99e1562a51dacac333642cae8105ebd
(cherry picked from qtbase/4531c83376c1a3546305a9fa5203e0a885e8860d)
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
find qmakespecs in source directory of shadow built qt

qt 5.2 does not copy the qmakespecs to the build directory any more.
a fallback to the /get property variant ensures that other build types
continue to work. consequently, this has no effect whatsoever on
installed qt versions.

(based on qtbase/214b55d5d4c8fdf975b3c36f69bac4b07d8d39d0)

Task-number: QTCREATORBUG-9572
Change-Id: I9edac11f8997fcb0594d0a67419d4733dd4ed86b
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
(cherry picked from qtcreator/958672e4607acf654b0fe5f35a385e95a3042f23)