Commit Graph

1245 Commits

Author SHA1 Message Date
Eike Ziller
b1e2d5b693 Merge remote-tracking branch 'origin/4.2'
Change-Id: Ib3073a0a3d80c99cf97b9839480dbf9583fa10de
2017-01-23 13:13:14 +01:00
Filippo Cucchetto
4b1f8f3609 ProjectExplorer: Added support for registering custom languages
Change-Id: I728a2ed1ef7d9f44d7c2b59d27d6e23444cd3bb5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-01-23 11:19:11 +00:00
Christian Kandeler
014167c8e8 QbsProjectManager: Remove duplicate include paths for the code model
Task-number: QTCREATORBUG-17381
Change-Id: Iabf1cdfe7988181e0e20396c5a5ec02e51e27f44
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-01-20 16:48:38 +00:00
Christian Kandeler
c05a3fdb3d Give the values of BuildStep::OutputFormat better names
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>
2017-01-19 16:08:57 +00:00
Tobias Hunger
25fbcca96b KitManager: Get rid of KitMatcher class
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>
2017-01-18 10:39:16 +00:00
Eike Ziller
8d08c601d5 Merge remote-tracking branch 'origin/4.2'
Change-Id: If9b3a860d7efb561bb710d49396d6bbe13809aa1
2017-01-12 10:54:48 +01:00
Tobias Hunger
a0125a6e6d Qbs: Fix warning about unused variables
Change-Id: If0659e83a188b4b76d3ae80bcbd4319c02b655da
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-01-11 10:15:34 +00:00
Eike Ziller
589fedf455 Merge remote-tracking branch 'origin/4.2'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/plugins/projectexplorer/kitinformation.cpp

Change-Id: I94299b069418586db97d1d596a252794e4037556
2016-12-20 17:14:19 +01:00
Christian Kandeler
8751d46f97 QbsProjectManager: Take the "no OS" case into account
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>
2016-12-20 14:18:20 +00:00
Nikolai Kosjar
3a369552c6 CppTools: Classify ambiguous headers depending on other files
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>
2016-12-12 13:49:09 +00:00
Nikolai Kosjar
a80273edf0 QbsProject: Adapt assert
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>
2016-12-07 13:33:17 +00:00
Nikolai Kosjar
521423b433 CppTools: Call ProjectInfo::finish when we get it
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>
2016-12-06 14:34:39 +00:00
Orgad Shaneh
7b3642cce4 Merge remote-tracking branch 'origin/4.2'
Change-Id: I259a402bc896fc2e359cc96b7510453ac9a9a552
2016-11-28 15:27:51 +02:00
Christian Kandeler
c7e6054601 QbsProjectManager: Fix potential crash
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>
2016-11-24 09:47:55 +00:00
Christian Kandeler
0516f776cc QbsProjectManager: Fix precompiled header collection
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>
2016-11-23 13:44:06 +00:00
Eike Ziller
0596699dbd Merge remote-tracking branch 'origin/4.1' into 4.2
Conflicts:
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qbsprojectmanager/qbsconstants.h

Change-Id: I3800e580faaccdc1dd08da851956ba677d33df51
2016-11-21 17:01:15 +01:00
Jake Petroules
e50c9afce9 Qbs: filter out -arch compiler flags from platformCompiler/LinkerFlags
-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>
2016-11-14 12:02:06 +00:00
Christian Stenger
b892d82086 QbsProjectManager: Fix compile with gcc 4.8
Change-Id: I3be0349c9af1f8ed51f04c04ce97983409dd7512
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-11-14 10:10:54 +00:00
Orgad Shaneh
9c09ca9e42 Merge remote-tracking branch 'origin/4.2'
Change-Id: Ia98031eb87f1859c3736faa0cdd8b655e8a50689
2016-11-14 11:17:13 +02:00
Tobias Hunger
3af1372395 ProjectExplorer: No more pointer to the parent project node
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>
2016-11-14 09:03:04 +00:00
Jake Petroules
d1c2a841af Qbs: don't set cpp.linkerName
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>
2016-11-11 10:28:49 +00:00
Jake Petroules
a8bb2af30e Qbs: fix Xcode SDK detection (take 2)
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>
2016-11-11 10:28:44 +00:00
Christian Stenger
2380757199 QbsProjectManager: Fix missing include
Avoid compile issue when using gcc 4.8.
(error: variable 'const QRegularExpression re' has initializer but
incomplete type)

Change-Id: Ic89f9afdf0a6854948a21103a64ec8b8f4ad1681
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-11-11 07:57:02 +00:00
Tobias Hunger
ad003363b7 ProjectExplorer: Rename Node::projectNode to Node::parentProjectNode
Change-Id: I47fa794a0bd8456ae23271934a957d9667d2d7bb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-10 15:24:14 +00:00
Tobias Hunger
67e011ba5f ProjectExplorer: Make naming of methods on Nodes more consistent
Change-Id: I5050a020f0fc0ef4556db1d2020afeadfcd51585
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-10 15:24:02 +00:00
Jake Petroules
d121fefaa9 Qbs: fix Xcode SDK detection
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>
2016-11-10 11:04:57 +00:00
Christian Kandeler
efd7a141fa QbsProjectManager: Allow JS expressions when overriding properties
Change-Id: I2564b1268d801aa10f7b19c731928510d007bf02
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2016-11-09 15:27:10 +00:00
Christian Kandeler
0dc87382e9 QbsProjectManager: Translate qbs module properties to compiler flags
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>
2016-11-07 11:04:35 +00:00
Jarek Kobus
05747d7d33 Don't shout in text messages
Change-Id: Ie8d2c6761c87b358f0bc8691e529ba8144e267a4
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2016-11-04 09:51:29 +00:00
Tobias Hunger
7150c0778b ProjectExplorer: Allow for disabled nodes in the project tree
Change-Id: I82d8284777f5691eb3ba9cf4ef92da05057aac18
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-03 15:56:16 +00:00
Tobias Hunger
ce3e586198 ProjectExplorer: Shorten space needed to store a FileType
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>
2016-11-03 15:55:39 +00:00
Tobias Hunger
c9ee7ee378 ProjectExplorer: Shorten NodeType enum
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>
2016-11-03 15:55:13 +00:00
Oswald Buddenhagen
424639ecac make resource file handling able to deal with QMakeProject's VFS
resources.prf may create virtual qrc files when RESOURCES contains
non-qrc files.

Change-Id: If591de9b32b775059d67e94bc3cb06d23ee44b08
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-01 17:34:55 +00:00
Orgad Shaneh
9ac8572b29 QbsPM: Store unexpanded values in build configuration
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>
2016-11-01 09:54:50 +00:00
Nikolai Kosjar
6e6d5b5309 ClangStaticAnalyzer: Tests: Rely on projects telling when they finished parsing
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>
2016-10-31 15:09:01 +00:00
Christian Kandeler
f911ddba86 QbsProjectManager: Remove a redundant header file
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>
2016-10-26 08:21:31 +00:00
Orgad Shaneh
a423f52310 QbsPM: Move QbsBuildStepConfigWidget to cpp file
Change-Id: I9ad8598ca0fae7d5c48f7debb30a364c88456a46
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-10-25 08:48:44 +00:00
Christian Kandeler
a97f1bd0bb QbsProjectManager: Do not set an empty compiler name
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>
2016-10-19 09:29:57 +00:00
Christian Kandeler
8707c7bb1b QbsProjectManager: Do not set up generated files for disabled products
Such products are not guaranteed to have a valid build directory.

Change-Id: I3e6ec211edb8fb9a13e3b785cd19b795f7adee12
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-10-19 08:04:41 +00:00
Christian Kandeler
93fa6ebc6d QbsProjectManager: Allow to switch on qbs profiling via env variable
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>
2016-10-10 08:29:27 +00:00
Christian Kandeler
313c0b1b3b QbsProjectManager: Fix displaying generated files
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>
2016-10-07 07:30:47 +00:00
Christian Kandeler
8281e55804 QbsProjectManager: Remove dead code
Change-Id: I71a740d5a97a7d5e493bb6fa6afe124b73753e52
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-10-07 07:30:17 +00:00
Eike Ziller
90cf4487a5 Merge remote-tracking branch 'origin/4.1'
Conflicts:
	src/plugins/autotest/qtest/qttestoutputreader.cpp

Change-Id: I4b323f2f3041d015fa04b9a25ec925f3b3e2411f
2016-10-05 15:28:04 +02:00
Christian Kandeler
47379011ea QbsProjectManager: Take Project::FilesMode into account
Change-Id: Ia3b56392c6334beb0e892adf952c0f752920d704
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-09-29 13:53:27 +00:00
Christian Kandeler
9e6d470c3a QbsProjectManager: Do not execute rules on initial project loading
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>
2016-09-29 05:33:45 +00:00
Christian Kandeler
b491a1c2c0 QbsProjectManager: Fix typo in toolchain setup code
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>
2016-09-29 05:31:13 +00:00
Orgad Shaneh
baf74ae070 QbsPM: Support variables in build configuration properties
Change-Id: Id438c33d14e0e7b27ea81fa39395c2d68d8a7736
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-20 17:12:53 +00:00
Alessandro Portale
e809594fae Core: Make IOptionsPage::categoryIcon a Utils::Icon
This is necessary for themable + HighDPI icons in the options dialog.

Change-Id: I8e3ff87a24591af40bb76b39cd970443d7678fae
Reviewed-by: hjk <hjk@qt.io>
2016-09-20 12:52:49 +00:00
Eike Ziller
72991fe9f8 Merge remote-tracking branch 'origin/4.1'
Conflicts:
	src/tools/clangbackend/ipcsource/projectpart.cpp

Change-Id: I2975328ae0398f70ef4403bd6cebdc80d24379c9
2016-08-25 12:18:57 +02:00
Christian Kandeler
f4b8ec1efc QbsProjectManager: Fix target change
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>
2016-08-23 11:01:20 +00:00