When parsing remote .pro files the parsers needs to pretend it runs
on the remote device.
All internal data are now "local on the remote", so that string
manipulation in .pro files "just works", and a 'device root'
string is passed around to relevant functions which then use
it to construct FilePath::toFSPathString()-style paths that
our custom FSEngineImpl can then map to the real device.
Remote $$system() calls are intercepted by the local parser and
redirected using the usual QtcProcess mechanims.
Quite a bit of the ProParser needed adjustments, so there's some
potential for regression.
Task-number: QTCREATORBUG-28242
Task-number: QTCREATORBUG-28161
Task-number: QTCREATORBUG-28355
Change-Id: I6100e7aca4e1db35f5e9689004110aab57e2c595
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
qmake doesn't do anything with sysroots at this level, so this code
plain does not belong here.
sysrootification is used when resolving INCLUDEPATH, which is emulating
compiler behavior. this is done by higher-level code.
Task-number: QTCREATORBUG-11944
Change-Id: Ia25f0b6ef713e9809d974e3f3e49ba308b8c933f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The test reads the command line, but skipped the commit.
Change-Id: If38a5fdd1ec129d77065bfd90403e21fea4eda6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
this tremendously speeds up loading of qt 5.1 based projects (including
qt itself) under mac os, as these look up the sdk dynamically, and use
caching to avoid doing that in every subproject.
Change-Id: I833253f81c3159056fab2ff888f293b36cc2ef56
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
it's a hack which is exclusive to ProFileEvaluator.
Change-Id: I86141dc8985330a8a1602ced002545a9eb0a646c
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
"(eval)" does not exactly help to find the error source.
Change-Id: Iecd03e6a4909ca6d7eab846844ca4415ebfa3429
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
as other output code which is enabled only in full qmake mode, this
prints directly to the console.
Change-Id: I6a1578818512fa3b0773faf276a1d56881eb06d7
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
the command line parser can be now integrated with a parser which
understands more options.
Change-Id: Ib9de352376b2f03dd466d577435f680702d1e2b9
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
the parser explicitly excludes complaints about missing files (because
they are pretty common in cumulative mode), so we need to do it ourselves.
Change-Id: I3c36819ab7b26152271e4557b67fb36b0a595b60
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
that way even a testreader built against qt 4 can use qt 5 qmake.
Change-Id: I55636dc22bd13cd7dcdff7381e4f0162592bb781
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
instead of having a bazillion different callbacks, have only one with a
type parameter. the drain typically multiplexes all into one stream anyway.
Change-Id: I963daefc5a266c91334a4cc599570ed26b603d5d
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
not setting it outside the main project processing, as it's even less
likely to be needed there.
Change-Id: Ia7afe3a53bf0977d739bf23d7cd79e3a2aee8867
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
this is QMakeEvaluatorHandler, but derived from QMakeParserHandler.
the idea is that the parser can be used stand-alone, while the evaluator
needs the parser as well.
we will need it in QMakeGlobals as well, so put it there, as that is the
most central place.
Change-Id: I6ee46c0e4b2e044bf3bfc6e4235b53525ddfc875
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
more natural name. the ProFileEvaluator class itself is somewhat more
high-level, so it will remain named as it is. i'll move around the code
at a later point.
Change-Id: I03fa844d0109e281f3602b4781ac11c6f2954aa4
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Getting the #include directives ready for Qt5. This includes the
new-project wizards.
Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
centralize support for default-initialization of qmake properties with,
duh, qmake (-query).
Change-Id: If97725fa61779819f6afb9073042b667d7253e5d
Reviewed-on: http://codereview.qt.nokia.com/308
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
just in case it gets used for something "real" ...
making exact mode optional would make no sense, as feature files always
need to be evaluated exactly for meaningful results.
Change-Id: I568ab751cf74790e0f79b54248202412c39a68ea
Reviewed-on: http://codereview.qt.nokia.com/306
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>