Commit Graph

229 Commits

Author SHA1 Message Date
Orgad Shaneh
73d3edf383 ClangRefactoring: Fix MSVC warning
indexdataconsumer.cpp:70: warning: C4138: '*/' found outside of comment

This amends commit 428b24fcb5.

Change-Id: Ic84d4ab135718738a99c5babc908b8cdd1b55bc3
Reviewed-by: hjk <hjk@qt.io>
2019-09-18 16:42:23 +00:00
Eike Ziller
4ec804dc4a Fix CMake build
Change-Id: I2f70e902670f0d20370d08f86edf4a7706daa393
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-28 06:12:55 +00:00
Marco Bubke
9f805b7e8a ClangRefactoring: Improve follow symbol and usage
Change-Id: Idb42010443e4560489ef067e54d05b4e567598e9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:53:45 +00:00
Marco Bubke
c174eb378a Clang: Reduce database accesses
If we prefetch data from the database to the caches we reduce the database
transaction calls which are quite expensive.

Change-Id: I617a0d886807402e0a94291a913a77f989970b55
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:53:32 +00:00
Marco Bubke
f9fb4508d4 Clang: Optimize file path cache
We now fetch all directories and sources from the database at file
path cache creation.

Change-Id: I92510b49a234128f4c82b840611db82ead3f1a54
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:51:28 +00:00
Marco Bubke
0fe6811acd ClangPchManager: Use TimeStamp instead of long long
Change-Id: If8a429238d31492506c68bb523ceeb4bacad157e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:49:48 +00:00
Marco Bubke
1e703a6901 ClangRefactoring: Remove file status collection
It is not needed anymore. If we need it again we can reintroduce it.

Change-Id: If8897ddb404daaf52b249ddd3763deb685c35fe5
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:49:31 +00:00
Marco Bubke
cdda564946 Clang: Set indexing time stamp by dependent sources
Instead of using the time stamp from clang we simply set one time stamp
for all dependent sources.

Change-Id: I0adbe59d46c88ddd1ac491a7f7db568bcf2ac540
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:48:54 +00:00
Marco Bubke
eadd37572a Clang: Move transactions to storage
We call the function anyway only isolated from other queries, so we can
move the transaction guards to the project storage.

Change-Id: I7cca26b25c2258856c68821671085c0a68044693
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-08-27 11:47:29 +00:00
Eike Ziller
f689f86be5 Merge remote-tracking branch 'origin/4.10'
Change-Id: I1193e94353c14492a9e7f093fbcd3fa53f83e390
2019-07-18 07:30:29 +02:00
Marco Bubke
ec3c7946af UnitTests: Fix compile without Clang
I moved the clang depend code under the condition that it is only compiled
if LLVM is present.

Change-Id: If1e37f677464ff38833c81dbebdfe8eaa563cdde
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-16 08:19:06 +00:00
Tim Jenssen
333b33edbe Merge remote-tracking branch 'origin/4.10'
Change-Id: Iaf27911e4e9fb762c1a24c84c458462bafe95728
2019-07-12 15:53:56 +02:00
Marco Bubke
1841cb1fa5 ClangPchManager: Fix path for excluded include files
Still used the old approach but now it is using the new one.

Change-Id: I4bf4da3a5d41d46afff261f3d77bd9190737038a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-11 09:03:01 +00:00
Marco Bubke
10f3621cf1 ClangRefactoring: Test for non existing client
This can be happen as we shutdown the process.

Change-Id: I69f30ed65ef4456abe6d59b4ea188a67c482efe0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-11 09:02:10 +00:00
Marco Bubke
2eb4050acb ClangRefactoring: Make the indexer more robust
We check now if the database is busy. This should not be happen but better
be careful.

Change-Id: I8b667ff183368977991974ea1fe7fcde837e968a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-11 08:59:16 +00:00
Marco Bubke
4526a02e31 ClangRefactoring: Add WAL checkpoint at the end of the symbol storage
Change-Id: I70fde54947a302ae0e45bff083cd5654c86b3891
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-11 08:59:04 +00:00
Orgad Shaneh
6e6dc32ad0 CMake: Fix build
This amends commit 376aae2711

Change-Id: I63e94c7e720f4f18fcf0f47b6e7af7e471c84df5
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-07-08 18:28:58 +00:00
hjk
288ff9a854 ClangRefactor: Avoid warnings
... about unused code by removing it.

Change-Id: I827db7880d5fca8a736b34fa58608328645bf80f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-05 09:56:44 +00:00
Marco Bubke
8c95d44b17 Fix pri file
Change-Id: I277340dbec962e59f090d393967453d058a933a2
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-07-04 15:47:22 +00:00
Tim Jenssen
1df6443d4a Merge remote-tracking branch 'origin/4.10'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/libs/utils/synchronousprocess.cpp
	src/plugins/baremetal/iarewtoolchain.cpp
	src/plugins/cmakeprojectmanager/cmakeproject.cpp
	tests/unit/unittest/CMakeLists.txt

Change-Id: I124ad492df403286751e175d27fe36487ddf6d07
2019-07-04 15:17:55 +02:00
Marco Bubke
376aae2711 Clang: Remove old code
We maybe bring back the clang query interface but the local rename is
better served by other plugins.

Change-Id: I97bedcb20870632b7dd50977794a65b2b09ededb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-04 08:41:10 +00:00
Marco Bubke
cc87615fcd Clang: Differentiate between user and non user includes for updating
We don't want to recreate a PCH if the include or source is not
contained by a PCH.

Change-Id: If52fc1aed92054b4165cdc634656147fbe8baa47
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-07-04 08:40:45 +00:00
Cristian Adam
b519dc541a CMake build: Fix building with CMake
Change-Id: Ib1ba9d286a029d20106d105b3db7fb34596badbd
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-07-01 07:43:04 +00:00
Eike Ziller
10098b2508 Merge remote-tracking branch 'origin/4.10'
Conflicts:
	CMakeLists.txt
	tests/unit/unittest/unittest.pro

Change-Id: I64296ad31502d9b35012da129a28e9277e9fcf8e
2019-06-28 12:50:03 +02:00
Marco Bubke
e777ad57c5 Clang: Add reset to ModifiedTimeChecker
We can reset some file once to flag a file dirty if the included file has
changed.

Change-Id: I8763bb80f65882fba4e70057f569234e77097927
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-27 12:32:22 +00:00
Marco Bubke
e031ada154 Clang: Watch only PCH sources
We watched all sources but we do not want to watch the sources of the
project part because they are not used to build a PCH.

Change-Id: I700cd6077fc54230c9be94d620043cf3f10cf9ea
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-27 12:32:12 +00:00
Marco Bubke
cbfd9dc16b Clang: Update ModifiedTimeChecker in SymbolIndexer
If a watched file changed we should update the ModifiedTimeChecker too.

Change-Id: Ie43f5cf5b6dd4ddb1383168a1326add21f6e3e9d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-27 12:32:02 +00:00
Marco Bubke
bbd58ca30b Clang: Watch directories instead of files
Because there a limited resources to watch files we watch now directories.
So we need much less resources.

Change-Id: Iac558832e9521a7a1a67c5ea99b42ad1b0b5129c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-27 12:31:52 +00:00
Marco Bubke
98d7b502ca ClangRefactoring: Clear input files after collecting symbols
Change-Id: Ic4fbaac7ad3b3f80223d6cbb84a34dffa741fc4f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-26 12:21:24 +00:00
hjk
428b24fcb5 ClangRefactor: Suppress warnings about unused stuff
Change-Id: Ib9f25081421e6477c457786e0882322b44e80c62
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-06-21 06:47:58 +00:00
Eike Ziller
174b6f7e65 CMake build: Adapt to changes
Change-Id: Ia9cccd8068248ceacb2e4b1d4e182dc009d65497
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-06-18 09:41:18 +00:00
Cristian Adam
61fcdd0459 Clang build: Fix compilation with MSVC2017
Change-Id: I677614dc8f9de503131d8ac490a723c9fc5f7beb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-06-17 15:40:39 +00:00
Marco Bubke
300feced20 ClangRefactoring: Activate updating for indexing
Change-Id: I6fb818edfab8ef7d9cfab0520276acedf0597fd3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-17 10:50:00 +00:00
Marco Bubke
ee27ae2ef7 ClangRefactoring: Improve indexing
Fix some bugs in the indexing and use the new macro indexer from clang.

Change-Id: I2ba1b28097a8751aea942071851a60d164c6f371
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-17 10:49:49 +00:00
Marco Bubke
b213dee013 Clang: Improve updating
If project parts are up to date we send them directly to the indexer, so
the indexer can decide we something needs an update.

Change-Id: I7d4f32794c6b3a861cdefb3653a6dfd4e711f619
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-17 10:46:21 +00:00
Marco Bubke
912cb9278f ClangRefactoring: Ensure that database is written to log after indexing
Change-Id: Ic2473d9fe8dc9b41a7da728c9e1b5202524c1a79
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-17 10:46:12 +00:00
Marco Bubke
0251d610f1 Clang: Remove DelayedTemplateParsing settings
It will be use the default which should be provide less errors.

Change-Id: I2f5feefe574cbda6cd85f10620dfb75c46a0f7b7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-06-05 13:54:00 +00:00
Tobias Hunger
08025009a6 CMake: Add missing dependencies to clangrefactoringbackend related code
Change-Id: I4c7fa04309f24a5a5143a5e32f0b5200fdcde0b6
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-06-03 09:43:16 +00:00
Tobias Hunger
d70d58b5cc CMake: Add Threads::Threads as public dependency to clangrefactoringbackend library
Change-Id: If7d3d4a7226f034d0e4c66726d3a7beed3480efe
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-06-03 09:27:51 +00:00
Cristian Adam
f50859e856 CMake build: Add unittest CMake build files
On MinGW 8.1 I get the following after running ctest -j 40

99% tests passed, 35 tests failed out of 2631

Change-Id: I2c3ce7940b036e52ef393feab5837886355e7b5a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-05-29 13:46:25 +00:00
Orgad Shaneh
1e138fbe10 Remove excess blank lines after namespace
Change-Id: I4e4f83017f2bfc2cf842c4c971ed4b05e0447e6a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-27 06:50:16 +00:00
Cristian Adam
d855b84c5d Qt Creator CMake port
Based on Tobias Hunger's work from a few months ago.

The CMake configuration needs libclang and Qt paths specified as
CMAKE_PREFIX_PATH.

Auto tests are run with "ctest". At the moment the pass rate is 87%.

Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-17 13:33:28 +00:00
Tobias Hunger
c1488bbc25 Clang: Sprinkle some overrides over the codebase
This silences several warnings.

Change-Id: I0a15ee833ea4c3de4e6adafb72e530a2c4577b09
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-05-13 10:34:29 +00:00
Orgad Shaneh
fffffad325 ClangRefactoring: Remove redundant std::move
Detected by GCC9.

Change-Id: I12b4de063a736d17fb6a7105d622812df1981a1a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-05-11 17:50:05 +00:00
Marco Bubke
24cadba480 ClangRefactoring: Fix indexing
We moved inside of loop so projectPart was used many times but was empty
after the first iteration.

Change-Id: Ie2441dbdd3bb9de73ae1fd076626255599f5dfea
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-29 12:52:13 +00:00
Marco Bubke
2d520140d0 Clang: Fix system pre include search path
We now get the resource path from creator. The -fPIC case is working now
too.

Change-Id: Id191e89e6d46706748d50440038a06a349972cc9
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-29 12:52:05 +00:00
Marco Bubke
eaaff9da7e Clang: Reindex without PCHs if error are occurring
If an occurs we first reindex with the system PCH only and if it is still
occurring we are indexing without any PCH.

Task-number: QTCREATORBUG-22011
Change-Id: I815ee3abe7829aaeb191d985cd045bac35015893
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-23 09:09:06 +00:00
Marco Bubke
5a6a9343b5 ClangRefactoring: Move command line generation in worker thread
Because we want to retry to index without the PCH we need to move the
command line generation in the worker thread.

Change-Id: Ifd018be277081ee676e5fa51af9e6ee99bbc6724
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-23 09:08:57 +00:00
Marco Bubke
16d5bf0afc ClangRefactoring: Move transaction in fetchPrecompiledHeader
Prepare the move of fetchPrecompiledHeader in the lambda to execute it in
the thread.

Change-Id: I00f906196dabfdb5cd38f4b9752d92678236b849
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-23 09:08:50 +00:00
Marco Bubke
3fc8217113 Clang: Refactor fetchPrecompiledHeader
We don't need the other information any more.

Change-Id: Ie34a646df34e336591c124093a15e90307ac88ec
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-04-23 09:08:44 +00:00