Commit Graph

3443 Commits

Author SHA1 Message Date
Tim Jenssen
b91632e642 CMake: fix crash while clicking context menu
It crashed if the root project had some error
and I tried to build a subproject.

Change-Id: I13dc620402a5f79e507e7da3fedb5eb09a4112da
Reviewed-by: Alexander Drozdov <adrozdoff@gmail.com>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-12-12 10:20:35 +00:00
Tobias Hunger
a08a4a4842 CMake: Sort generator by name before displaying them
Task-number: QTCREATORBUG-17404
Change-Id: Ib20403a59bf01b71f0d317fc003d8484d215fcf5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-12 10:17:32 +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
Tobias Hunger
9801472d33 CMake: Fix potential nullptr access
Change-Id: I08bcbde9702bb9bea5fe4f24247eb3856e79f339
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 18:36:10 +00:00
Tobias Hunger
45ad669a88 CMake: Return empty tree on errors in server-mode
This triggers the fallback mechanism which will make sure the CMakeLists.txt
file will be displayed.

This used to fail since one empty folder was left over in the project.

Task-number: QTCREATORBUG-17383
Change-Id: I867fd9039bc5df805ff5174ec49084bbcf688824
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 16:21:30 +00:00
Eike Ziller
8f0ddff1cc Merge remote-tracking branch 'origin/4.2'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri
	src/shared/qbs

Change-Id: I5050baa31f4a892d00cd6f7e088d1b597921474d
2016-12-05 10:55:35 +01:00
Tobias Hunger
c9f7aef71d CMake: Stop progressindicator on build settings widget on error
Change-Id: I75051aa23baa88d984092ba594dda72c489d7c19
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 09:27:57 +00:00
Tobias Hunger
4f8769d844 CMake: Tealeafreader: Emit start signal before actually starting
This way we will get the start signal before the done signal if something
fails early.

Change-Id: I015017fdba16dd84f830b2e1fe2742eb0bec02a0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 09:22:50 +00:00
Tobias Hunger
183cdbc91f CMake: Emit errorOccurred on errors in server-mode
Change-Id: I0dd262ccaad3704c70dedff5e0b102032c46d2df
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 09:22:41 +00:00
Tobias Hunger
73e45e30a3 CMake: Clear tasks when forceParse-ing
Server-mode only used to clear the tasks for normal parsing.

Change-Id: Ibbc3ac30f00afaff4874cb0682f5d7e8f1abafcd
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-05 09:19:11 +00:00
Tobias Hunger
e545f8a105 CMake: Work-around first config argument getting skipped by cmake
Work-around the first configure argument getting ignored by cmake 3.7.0
and CMake 3.7.1.

Change-Id: Iaf164cbf973672c1d899738a374c65ea5641132c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 15:33:55 +00:00
Tobias Hunger
cae9f70d75 CMake: Do not forget cmake generator information on load
Task-number: QTCREATORBUG-17311
Change-Id: I3439933e396f74a092c9b46aaced0a73c33c4407
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 15:33:32 +00:00
Tobias Hunger
63c0fbc4e4 CMake: Cache cmake configuration only once
This fixes saves memory and fixes some update issues with the cmake
configuration, where the three layers of caches used to interfere
with each other.

Task-number: QTCREATORBUG-17360
Change-Id: I5564bbe46ca8de6b38dd710100bfc18fad98eac5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 12:00:09 +00:00
Tobias Hunger
5a88e4c9ad CMake: Fix the config model merging data
Old user-settings used to get lost.

Change-Id: I5197c3b57b12d94e7464a86261a1364dd9aca266
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 12:00:03 +00:00
Tobias Hunger
ea220ccec1 CMake: Emit necessary signal in server-mode
Change-Id: I35066deebbd0b7330cbf9864442073966af9203f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 11:59:58 +00:00
Tobias Hunger
b328a6357f CMake: Make project configuration win over kit configuration
removeDuplicates keeps the first instance, so pass in the project
configuration first.

Change-Id: I2549b8043905687fecc3b690f1d54456c42a4cf3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 11:59:54 +00:00
Tobias Hunger
168c5c67a2 CMake: No need to update the reader when it already is up to date
The reader notifies us about the configuration being changed, so there
is no need to tell it about those changes again.

Change-Id: I458947babf1cd9c50a66ea7863f37d1e43d6c5f2
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 11:59:44 +00:00
Tobias Hunger
0edb16d4f3 CMake: Log server-mode teardown
Change-Id: I68ef20b855b9b7d6ed6fded9a599d74162a50390
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 11:59:37 +00:00
Tobias Hunger
46fb4f430f CMake: Clean cmake cache on compiler changes
According to the cmake developers this needs to be done.

Change-Id: I85670da11be31a71dd22fe2ea8d9102e47cc6535
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-12-02 11:59:33 +00:00
Tobias Hunger
49e255c4d5 CMake: Check result of file open
Change-Id: Ia4a11359f7cb08ee3fa55c77dc54d42890f37845
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-30 14:24:55 +00:00
Tobias Hunger
2d8d90bc79 CMake: Cache buildtargets in builddirmanager
No need to have the builddirreaders to so.

Change-Id: Ia7e38f6483b29d6a4f4b65baacc17bf184a3cb34
Task-number: QTCREATORBUG-17359
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-30 14:23:36 +00:00
Tobias Hunger
c9be75fe65 CMake: Handle executables properly in server-mode
Change-Id: Idabfc2449377d0d81cc1639ad4992d8710ec8b7d
Task-number: QTCREATORBUG-17359
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-30 14:23:28 +00:00
Tobias Hunger
c54fe23579 CMake: Send compact JSON output to cmake server
Change-Id: I0e02f122bdb2b1b417a70aa4933cc4246d6969c6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-30 14:23:16 +00:00
Tobias Hunger
8773d0fba3 CMake: Initialize members of CMakeCbpParser
Change-Id: I8cbfaa2f1d9cf9a9a77a4e54015c0239f0abfb35
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-29 15:34:26 +00:00
Tobias Hunger
6f48d5a9a3 CMake: Initialize int members of servermodereader
Change-Id: Id7262d4c7f96f56aa95925852d64d9856292fb1e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-29 15:22:51 +00:00
Tobias Hunger
f82edded08 CMake: Initialize bool in BuildDirReader::Parameters
Change-Id: I52c73d408946ed9b415c6b06167d00c643f09b37
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-29 15:21:45 +00:00
Tobias Hunger
03ff931e92 CMake: Initialize pointer
Change-Id: If972b036e4e49c55e6935235341946a04d41a15c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-29 15:19:43 +00:00
Orgad Shaneh
7b3642cce4 Merge remote-tracking branch 'origin/4.2'
Change-Id: I259a402bc896fc2e359cc96b7510453ac9a9a552
2016-11-28 15:27:51 +02:00
Ulf Hermann
31749b76b8 Cmake: Don't take QStringRefs of a temporary QString
This crashes.

Change-Id: I3f81466f504fdff8d47372425ea8f84048f89b76
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-11-28 08:19:09 +00:00
Alexander Drozdov
651460cd8d CMake: separate processing C and C++ flags in TeaLeafReader
C and C++ flags holds at the different variables/compiler settings in
the generated Make and Ninja files.

Currently only C++ Flags processed and assumes that same one uses for
C lang. But now QtC core can handle C and C++ separatelly, so just
add processing for that flags and use it for code model.

Change-Id: If1f71a2c58284a46324f04e962fc120cc316b0fb
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-25 13:59:20 +00:00
Friedemann Kleint
840e787175 Use QString::splitRef() instead of QString::split()
Avoid string allocation where it seems feasible.

Change-Id: I61b23d4ef8a459f5aa77727a75f4e1d2b140da3b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-25 11:32:47 +00:00
Tobias Hunger
391284f393 CMake: Fix <Build Directory> in server-mode
Files below <Build Directory> could not be opened from the project tree
since their file path was broken. Fix that.

Task-number: QTCREATORBUG-17297
Change-Id: Id785ffa1c4d22c4dfdc0b5ecf8217d3f8bc319c4
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-25 10:23:50 +00:00
Florian Apolloner
4c22f3a76c Fixed cmake signal handling in server-mode
Task-number: QTCREATORBUG-17319
Change-Id: I25673a32142a691dff2444be8981d747f10e18c5
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-24 14:51:17 +00:00
Nikolai Kosjar
e37772c1c6 CMake: Remove unused parameter
builddirreader.cpp:82:74: warning: unused parameter 'other'
[-Wunused-parameter]

Change-Id: I5e7825f3819c04ab549a442941529066c19809c1
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-24 08:09:50 +00:00
Tobias Hunger
bbcfbdf58d CMake: Log server-mode data
Change-Id: I043459224b790900e6f13b6fa8f389dbeca26789
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-23 12:52:58 +00:00
Tobias Hunger
52fc4a4ebd CMake: Make sure to never trigger a timer on an destroyed object
This object might have gone out of scope by the time the timer hits.

Task-number: QTCREATORBUG-17289
Change-Id: I4b9ea75c9b4b1c905ece44965e80a5accc3590f3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-23 12:06:15 +00:00
Tobias Hunger
591d693d0d CMake: Move code to read CMakeCache.txt into CMakeItem class
Change-Id: Ie5d76a2b50007c80d68b2e97d3339a582afce469
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-17 13:10:47 +00:00
Tobias Hunger
3422e5cded CMake: Clean up more paths in server-mode
Change-Id: Ifd578cbc7516f66ad52cc13faca0ee733dbc7512
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-17 10:57:23 +00:00
Tobias Hunger
a7aeec22ce CMake: Unify names for important directories in server-mode
Unify names for important directories in the project tree of
server-mode cmake projects.

Change-Id: I6354e0a1cfb71f9038d9110438622c824deedebe
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-17 10:57:16 +00:00
Tobias Hunger
c49a0dd502 CMake: Fix generator warning for server-mode cmake tools
Do not warn on wrong extra generators if cmake supports server-mode.

Make the massage point out the missing server-mode while at it.

Change-Id: I643c77fbebe4ba9a7ea6fee28422283118d145dd
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-15 16:33:35 +00:00
Tobias Hunger
eff0768100 CMake: Fix server-mode trimming out targets every second time
Do not trim out targets every second time the project tree is generated.

Change-Id: I6ed9cd7bb6b2e88ec6dbe063f90719ffacffdd61
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-15 16:27:21 +00:00
Tobias Hunger
7b467cbad6 CMake: Make sure paths are clean in server-mode
Change-Id: I93c61a24e63d8920731b4197d88248d13219eb81
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-15 16:27:09 +00:00
Tobias Hunger
53d45de8a0 CMake: Allow to build target from context menu of CMakeTargetNodes
Change-Id: I0457abd6dabea1699272482eb5f7fbb3ca097310
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-15 09:30:59 +00:00
Tobias Hunger
e37539a16c CMake: TeaLeafReader: Simplify code
Change-Id: Ib615fde89952848c4cfe392a2e84c15f6b73de80
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 12:30:43 +00:00
Tobias Hunger
ff68d4cab1 CMake: TeaLeafReader: Fix include path detection
Change-Id: Ifcd64836aef7fc69b3cc0d4c27a07293348b91a6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 12:30:39 +00:00
Tobias Hunger
247a6fea93 CMake: Server-mode: Use sourceDirectory directly
Change-Id: I0929ea86e24a8f1aa4dbfc5d41421127accefe33
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 11:17:45 +00:00
Tobias Hunger
b7f15d8cdf CMake: Do not crash when restarting a filesystem scan
Change-Id: I7a86169f4dd891c91295a7d6daadfd2bac8db751
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 10:29:59 +00:00
Tobias Hunger
4b4dc9d06c CMake: Project tree for server mode data
Change-Id: Ief884a76c1b4211501dd6515b17b6e88a8e881e5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 10:29:53 +00:00
Tobias Hunger
38f30e733f CMake: Always show CMakeLists.txt in project tree
Always show the top level CMakeLists.txt file in the project tree,
even when parsing failed.

Change-Id: I42c844eb54b32fcb51131ad63a8fc372622636fc
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-11-14 10:29:30 +00:00
Orgad Shaneh
9c09ca9e42 Merge remote-tracking branch 'origin/4.2'
Change-Id: Ia98031eb87f1859c3736faa0cdd8b655e8a50689
2016-11-14 11:17:13 +02:00