The old ones did not convey their meaning very well. In particular,
NormalOutput and MessageOutput were easily confused.
Change-Id: Ia0a8c1b1c366ab3f5c59f751b37b8b1f68f6831d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Use std::function instead. Clean up API while at it.
Change-Id: I6e401ab57f5375e36710c30508c596af3f4b3385
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When a toolchain did not specify an operating system, we did not set
qbs.targetOS, which meant it stayed at its default value (qbs.hostOS).
Instead, we correctly set it to an empty list now.
Task-number: QTCREATORBUG-17452
Change-Id: I2c7030013ea7a1f954e8d0f7059b471008a0ed72
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This applies for all project managers, except qmake. The qmake project
manager will make use of this in follow up changes.
Before, "foo.h" was always recognized as a CXXHeader. Now, it depends on
the other files. E.g. in a file list {"foo.h", "foo.c"} foo.h is now a
CHeader. In {"foo.h", "foo.c", "bar.cpp"} the file "foo.h" is ambiguous
and we will create two project parts, one where it is a CHeader, the
other where it is a CXXHeader.
Change-Id: I50505163368742584b1380c284d42cbe07cb4fc9
Reviewed-by: David Schulz <david.schulz@qt.io>
It fails now because with
commit 521423b433
CppTools: Call ProjectInfo::finish when we get it
the ProjectInfo is always changed.
Change-Id: I2c57cca330f42326d068e5077fc303d172b1be62
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
No need to require the project managers to do this. Also, it is easy to
forget.
Change-Id: I96f7a5e5547418678af9653e5753c372f0880e5a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Iterators 101: Make sure begin() and end() are called on the same
object.
Task-number: QTCREATORBUG-17339
Change-Id: Id757918e20a0a5017dc2135757f96f446abe0f48
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Precompiled headers are designated via file tags since qbs 1.6, whereas
the code here still assumed the earlier, property-based approach.
Task-number: QTCREATORBUG-17195
Change-Id: If379fab5fbe63c7e3128d2ab1c53d08737cdcff1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-arch is not allowed in compiler flags as it's automatically handled by
the qbs.architecture property, and is an error in current versions of
Qbs. If the architecture was successfully detected, remove the flags.
Change-Id: I85cce7b7f4ef5a92f857ec624a912861bcb267f5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
That information is used rarely, and is not too expensive to regenerate,
so there is no need to store and manage it for every node.
Change-Id: I2261853431cd4328ec447031de3b9f5d5347e796
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This is unnecessary (and counterproductive) with automatic linker mode
in Qbs 1.6.
Change-Id: I808effead885eeba0d524fa27989b8a54b8c655f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This adds xcode to the toolchain list, which is required to load the
Xcode module. It also uses the compiler path as the mechanism to find
the developer path, and then extracts the canonical SDK name using the
sysroot if it's a valid one for the previously extracted developer path.
amends d121fefaa9
Change-Id: I73cf1a50acd6b99a9fc3b6003bcc6dc23c2a04ab
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The Xcode related properties in the cpp module no longer exist. Use the
correct ones, and be a little stricter about extracting the constituent
components from the sysroot.
Change-Id: I6ceaebf529764e69e1e04af6650a2920b139fac2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Workaround for this not being available via dedicated qbs properties
right now.
Task-number: QTCREATORBUG-17207
Change-Id: Id06a41edf0308e5b20dd6bc7aa390c18d75acb19
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Use class enum to shorten the FileType to quint16. This frees up a couple
of bytes per FileNode and we can have many of those.
Change-Id: I3a9ae25059690fefa15305a4268269647d6dc1c9
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Use a class enum with a type quint16 for the NodeType. Frees 2 bytes
per node that can be used for better things now.
Change-Id: Ib84bf8629e9f4a5fb0793355eff0f0d6302167dd
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Expanded values are stored permanently, so the next time the project is
opened the variable usage is gone.
Change-Id: I9787b343e9856e12e296271674b3b8827041e477
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
We relied on the CppModelManager to tell us whether a project was reparsed
after a kit change. While this worked, it was not guaranteed that the project
is really finished (and ready for e.g. building) after pushing new ProjectInfos
to the CppModelManager.
Rely on the projects telling when they are finished with parsing. This is more
accurate and future-proof.
The introduced signals in Project and SessionManager are (at the moment)
only for tests.
Change-Id: I1b368ec4585ffa8755eb28fac6d187cce31243ee
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Somebody mistakenly introduced qbsconstants.h, even though
qbsprojectmanagerconstants.h already existed for that purpose. Merge
these two files and remove the newer one.
Change-Id: I6103509d902880d0e9c181873ec4cf56acf04424
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
If one of the two compiler types in the Kit is not set, leave the
respective value in qbs at its default. Things will likely work anyway,
whereas setting an empty compiler name is guaranteed to break.
Task-number: QTCREATORBUG-17109
Change-Id: I2b4153cb9a9daafb2f57659e16622e00d3921005
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Such products are not guaranteed to have a valid build directory.
Change-Id: I3e6ec211edb8fb9a13e3b785cd19b795f7adee12
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
We don't want to expose an option for this in the GUI, as the output is
not easily discoverable and the information is mostly interesting for
qbs developers.
Change-Id: I79a11e3ad12880b9862690cf18bdd3188aa9c03c
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
We did not update the project tree after building, so newly generated
files would not appear there right away.
Change-Id: I76ebc213ef43833203013186b0f0b38597cb1834
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
The "rule execution only" type of build can lead to nasty bugs due to
scanners getting called for files that don't exist yet.
This effectively reverts a57e75884e.
Task-number: QBS-1021
Change-Id: I85e7559060112428f8cd5872b95619ac26979743
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This lead to weird behavior regarding compiler name and toolchain
prefix.
Task-number: QBS-1022
Change-Id: I10abfb22ee71aed6ec5ebc6b3eb477536c86f717
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This is necessary for themable + HighDPI icons in the options dialog.
Change-Id: I8e3ff87a24591af40bb76b39cd970443d7678fae
Reviewed-by: hjk <hjk@qt.io>
We must not reset the project data directly; that is done when re-
resolving has finished. If we do it before, then we won't notice later
that the project data has changed and code models etc are not updated.
Change-Id: Ib0c030b46510c0241167e3beb261a08a0353db02
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>