When system include paths are added via QMAKE_CXXFLAGS in a .pro file,
in order to use the -isystem parameter, they are not taken into account
by Qt Creator.
This patch adds support for -isystem parameter in QMAKE_CXXFLAGS
parsing.
Change-Id: Ibd25734ec9f3a18258c445804c4a17269d7522ed
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This feature in question is the availability of the "Run" button in the
context menu of certain project nodes in the project tree to run
something presumably related to/build from that (sub)project.
Previously, the decision was made for certain qmake based projects
(those targeting Desktop, iOS and VxWorks) by some indirection
through the corresponding RunConfigurationFactories.
The patch lets the RunConfigurations decide themselves directly
and removes the indirection, potentially opening the feature for
other qmake based RCs, as well as other combinations (e.g.
PythonRunConfiguration could be associated with its .py file,
without the need to have a dummy project)
Change-Id: Ic489bd1dfa25fcd9102ffa4fa30125565dd2e40e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The strings remember in which file they were created/assigned.
However, this used a non-counting reference to a ProFile, which could
become dangling. If a subsequent ProFile re-used the exact same address,
a string's source would be mis-identified, which would be fatal in
conjunction with discard_from().
Since we actually need only a unique id for comparison, let's use an
integer for that.
comment on cherry-pick: this is actually a lot more than a cherry-pick,
because the file ids need to be aware of the dual VFS which was
concurrently introduced on the qtc side.
Started-by: Simon Hausmann <simon.hausmann@qt.io>
Change-Id: I395153afaf7c835d0119690ee7f4b915e6f90d4a
(cherry picked from qtbase/190aa94be7f5e146bef44862b974d733755cec85)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Do not report success of a qmake parsing run based on every .pro-file
having reported success. Take the top-level .pro-file's success value
instead.
This fixes e.g. Creator, which has some .pro-files that error out in
some conditions.
Task-number: QTCREATORBUG-18992
Change-Id: I888141e723da84fb780ccd84c86acc25d03f5f28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Avoid needless detaching in that method: The method is used less since
the Nodes no longer need to go through it. All the runconfigurations
still use it, so this change is still noticeable.
Change-Id: I9f5e238ab1ef7165fd4fef1b0f80d4e5daa9a7e8
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The patch broke defining the correct executable for qmake based
projects. Loading more complex projects (like QC itself) did
end up failing to run any executable out of the box as the
executable name was always wrong.
This reverts commit 21b0e7c37e.
Change-Id: I471c9963bd739b74e48286e1bde00f7222b90c8b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Finding the right pro-file was surprisingly slow. Make that fast again.
Task-number: QTCREATORBUG-19131
Change-Id: I4b5a8887cb13c36273a553f935a00d87cee4a7b5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This functionality was (accidentally?) lost in some semi-recent
refactoring in the pro file evaluation code. Note that only the "*" and
"?" globs are supported.
Task-number: QTCREATORBUG-17935
Change-Id: I9ade940f4dbf9c5836cd8b5fab2d85d10f42ad9a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Right now, the qmake project manager offers a "Build" context menu entry
for .ui.qml files and various other things are off because the mime
types are different.
Change-Id: Icc966e56513b9c5aed05f929dc8cb728ed408723
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Get rid of duplicated code to do such signaling in derived Project types.
Change-Id: I26914a1d751d72ee65c15a7943e0e7f34978f042
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
To avoid repeating the 'MimeDatabase mdb; mdb.something(); ' mantra
all over the place.
Change-Id: I4bfef62e73275a991455141671d6071162788e9d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
There is no need to forward that from the QmakePriFileNode.
Change-Id: I6ebc267eac68729ddb13027412cb315f81d55e82
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Introduce a new class used to turn a tree of QmakePriFiles into
a project tree.
Change-Id: I13b785fb988db3c5784bdf6e8daca6ba42f5a333
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The parser nodes do not need to represent the actual project
tree, so there is no need to keep the tree-structure. Store
the list of files instead.
Change-Id: I83e036d4b9b42e4186b4ef23ac573865942ee97e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Replace them with member functions providing the same information.
Change-Id: If65bb99c77df0f80562b4559914f4b81ab17a166
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Use unique_ptr to hold the QmakePriFileDocument. That makes
it clearer that QmakePriFileNode owns it.
Change-Id: Ia31778ad2a9d33a13cf818d3bcad0485ebfa2043
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Makes it clearer what that actually is.
Change-Id: I2b50deba53ae5cef2bf1a30b9497c1867559e1e9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>