support a cache that is really just a cache
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>
Thu, 7 Nov 2013 19:40:00 +0000 (20:40 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 18 Nov 2013 11:12:24 +0000 (12:12 +0100)
commit5719eb31810c71ae653915d614ea7cb4ced081d3
tree9a18971da96f2b265d00fbc8043c09d4bf079b9c
parentae6d8c4b35342ac144c7762fadec04cea0e0004c
support a cache that is really just a cache

unlike .qmake.cache & co., the presence of this file has no magic
effects on where mkspecs, modules and other things are searched.

as the obvious name "cache" is of course already taken, we call it
"stash".

the file is searched up to the super cache (if present), otherwise up to
the normal cache/conf (if present), otherwise up to the root.
if it's not found, it is created next to the super cache (if present),
otherwise next to the cache/conf (if present), otherwise in the current
output directory.

note that the cache really should be created and populated by the
top-level project if there are subprojects: otherwise, if there is an
"anchor" (super/cache/conf), subprojects would race for updating the
cache and make a mess. without an "anchor", each subproject would just
create its own cache, kind of defeating its purpose. this is no
different from the existing "cache", but it's worth mentioning that
removing the "anchoring" function does not remove the "nesting order"
constraint.

Task-number: QTBUG-31340
Change-Id: I786d40cef40d14582a0dd4a9407863001bec4c98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/ff31d87cc883dcf17ab459a15eac04e074d9614a)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
src/linguist/shared/qmakebuiltins.cpp
src/linguist/shared/qmakeevaluator.cpp
src/linguist/shared/qmakeevaluator.h
src/linguist/shared/qmakeglobals.h