Commit Graph

41 Commits

Author SHA1 Message Date
Christian Kandeler
73824ad1f2 ClangFormat: Fix qbs build
Prevent LLVM from smuggling -fno-rtti into the command line.

Change-Id: Idc428c8f7e4808233cdc3bcb25e46613573f59b4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2024-05-31 05:28:40 +00:00
Christian Stenger
a5c4c34c9a Raise minimum supported libclang
ClangFormat needs 14.0+ nowadays.

Change-Id: Ib5e38c79c5ec629fed4e5d8da5435769a71b2626
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2024-02-15 07:16:28 +00:00
Eike Ziller
baa83725f6 Remove ClangRefactoring and ClangPchManager
This removes the plugins and tools, and removes all the tests that would
fail to build because of that.

Fixes: QTCREATORBUG-25659
Change-Id: I8adb5d503fc8eea313bcaada421f309dbbfa8c26
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2021-06-15 10:07:57 +00:00
Christian Kandeler
3e2d224722 clang: Support user-provided llvm-config
... in the qmake and qbs builds. (The look-up mechanism in the cmake
build is completely different.)

Fixes: QTCREATORBUG-20592
Change-Id: I049740795108060aeada62dd030e82390e07fe48
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-12-15 14:56:07 +00:00
Christian Kandeler
baaccc87ba clang support: Adapt some version checks in qmake/qbs files
Change-Id: Ic1ea0e10586c5ab33f7fad87f76d742e13a55834
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-24 12:16:47 +00:00
Eike Ziller
8dff37f0d3 Disable ClangRefactoring by default
It is too unstable even for experimental status.

Change-Id: I38e483eaece00aec0211a81414c6c5a000bf283f
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-02 13:32:14 +00:00
Christian Kandeler
a03113832b qbs build: Make clang plugins build with libclang-cpp
Change-Id: Ifbae5f2a124e5c36126391d48b0a186bd153d678
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2020-05-26 13:09:07 +00:00
Nikolai Kosjar
f6210b3569 qbs build: Clang: Adapt llvm-config variants to check for
Change-Id: Ib961efe9b72acdfc383cade2053a4a1126e99132
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-05-22 13:21:44 +00:00
Christian Kandeler
bab97bf9b6 qbs build: Disable clang tooling plugins for llvm >= 10
They won't build with the new version.

Change-Id: I77c94817290418b0a97222465f0f8a8660053fae
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-05 15:32:23 +00:00
Orgad Shaneh
8827d83115 Clang: Centralize -Wno-comment for GCC
It's also needed in clangrefactoringbackend, unittest etc...

Change-Id: I9c758d52b34798d75610a4633bc7c5e7ceb0c00b
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-23 15:34:01 +00:00
Ivan Donchevskii
53c407bc0c Clang: Fix build with clang-8
Clang-Tidy checks and Clazy flags updated.
CLANG-UPGRADE-CHECK done.

Change-Id: I1ca585c5c3c77a7f183719df9c262603150914e8
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-04-17 12:13:36 +00:00
Orgad Shaneh
82bf5e2906 Qbs: Enable ClangRefactoring by default
This amends commit 89e70ca785.

Change-Id: I09f7075075e2244a031e4c20496272f382ec020d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-04-11 21:50:45 +00:00
Nikolai Kosjar
61775a844e Clang: Build clangformat only if clang/Format/Format.h exists
...in the LLVM_INSTALL_DIR.

Change-Id: I974f32759bca7fb467524bf61ff7967098748f0e
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2019-02-21 09:10:03 +00:00
Nikolai Kosjar
10958d88f6 Clang: Fix detection of clang with qbs
"res" was undefined.

Amends 2379007c17.

Change-Id: I3af0e94c70fcb6b5b1b8027383e767a5d9cd8238
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-01-03 10:42:40 +00:00
Orgad Shaneh
2379007c17 Clang: Suppress GCC warning with LLVM 7.0.1
Change-Id: I6de160b42472560a3b33d9a3390b0890eabe9d44
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-12-19 10:54:17 +00:00
Orgad Shaneh
7c17edcce2 Clang: Strip some more warnings
Appear in pchtaskgenerator-test.cpp and builddependenciesprovider-test.cpp.

Change-Id: I4f9f2660655e0dfc1002980ae31bc09288110b2d
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2018-11-22 14:15:46 +00:00
Orgad Shaneh
91649cf274 Clang: Remove some warning flags provided by LLVM
Clang unit tests produce many warnings with GCC8 and
these flags (-Wnon-virtual-dtor, -Woverloaded-virtual).

Change-Id: I54a4c9c5b2f12da3c3898fc6f3beca0d4dfe478c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2018-11-15 10:01:27 +00:00
Orgad Shaneh
3b30bfa35f Clang: Default to llvm-config-7
Change-Id: Id29095f378268b55430e715ec7d37f5a52159df5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2018-11-15 09:54:07 +00:00
Nikolai Kosjar
3160172b58 ClangFormat: Fix constructing libs for qbs
Assignment after concat() was missing.

Change-Id: I9a038cae6372648561a5450e9e3417c4c603ab7e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-10-16 11:06:22 +00:00
Ivan Donchevskii
e0d7d03720 Clang: Fix ClangFormat build with clang-7
Change-Id: I0859b7aad1a49f8d46ee4b32cc32039cfa0b482b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2018-10-05 11:08:27 +00:00
Alexandru Croitor
9da9ed45e9 Fix qbs build of clangformat plugin
Change-Id: Ic23a34048c62ed39590ad422ea3e4f8fea9fc5a1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-09-25 06:03:49 +00:00
Christian Kandeler
3336baad12 Fix references to the clang code model documentation file
Was forgotten in 7ab07a4e8f.

Change-Id: I2c6d21b79658e3946eb6ecdcf7b11992c0bf865e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-08-20 11:58:18 +00:00
Ulf Hermann
9a4f0317c1 Clang: only build with LibTooling if explicitly enabled
The feature is experimental and should not be used, yet.

Change-Id: Ifb9a651dcbaade5801ac28f900030407f12dc844
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-06-27 06:57:19 +00:00
Nikolai Kosjar
319daa2612 Clang: Require LLVM/Clang >= 6.0.0
Adapt versions and tests, remove code assuming clang < 6.0.

Switch also to our custom repositories instead of dealing with patch
files.

LLVM/Clang 6 was released on 09 Mar 2018.

Task-number: QTCREATORBUG-18535
Task-number: QTCREATORBUG-18552
Change-Id: I0ec2c2f56265e161ae7cbb5b03e7b8a182ba6cc6
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
2018-05-17 12:46:37 +00:00
Ivan Donchevskii
52ac74b61c ClangTools: Remove clang executable settings
We use custom clang executable and it does not make
sense anymore to give a choice of changing it.

Change-Id: Icf86042ac3fcd08c320ef2bbdaabef1102b023b5
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2018-05-04 09:58:37 +00:00
Christian Kandeler
1838057c22 qbs build: Fix clang Probe
Due to the way JavaScript's split() function works, an empty string
could end up in the list of dynamic libraries, causing a warning when
building the pchmanagerbackend.

Change-Id: I5af834d4f98af379ee346556b47c57cabf8c98db
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2018-01-25 15:36:24 +00:00
Eike Ziller
8921888ce3 Merge remote-tracking branch 'origin/4.5' into 4.6
Conflicts:
	src/shared/qbs

Change-Id: I5314559cbf188e4c339de44052c6e0c89d3c2aa6
2018-01-22 12:46:10 +01:00
Christian Kandeler
c278c26cb6 qbs build: Fix libclang Probe for qbs > 1.10
Probe configure scripts no longer have direct access to module
instances.

Change-Id: I87c5a7dbd44633cda5740d185829cecdc2d128e6
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2018-01-18 09:31:41 +00:00
Alexandru Croitor
b65c13c6a5 Improve failure message when usable libclang is not found
Change-Id: Id541206c6b284be7a1068533825c88c9352f9d7f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-01-11 13:32:37 +00:00
Nikolai Kosjar
5ba40cb7fb Clang: Require LLVM/Clang >= 5.0.0
...for the code model parts and declare 5.0 as the supported version for
the clang static analyzer.

Adapt versions and tests, remove code assuming clang <= 5.0.

LLVM/Clang 5 was released on 07 Sep 2017.

Task-number: QTCREATORBUG-18931
Task-number: QTCREATORBUG-18657
Task-number: QTCREATORBUG-17187
Task-number: QTCREATORBUG-14881
Change-Id: I53b00258ca06a1d2e57f9379dacc54b310687295
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-10-27 14:21:19 +00:00
Eike Ziller
7f626b1182 Merge remote-tracking branch 'origin/4.5'
Change-Id: Iceaa4ca40b5318744bde8a76c6d3ccca08df71bb
2017-10-25 16:07:21 +02:00
Christian Kandeler
3bcbcfa626 Add qbs project files for some clang-related tools and plugins
Change-Id: I4882be50c6b007715f7b281f95d111abc5cda62a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-10-23 12:18:34 +00:00
Nikolai Kosjar
f19facd378 Clang: Add more CLANG-UPGRADE-CHECK markers
Change-Id: I9ee553f29fa7a7f60291e2d7d2a56062dc722b9d
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-10-23 11:02:18 +00:00
Christian Kandeler
a6d12177ad qbs build: Use require() instead of loadExtension()
This fixes a number of deprecation warnings. The require() function was
introduced in qbs 1.8 and is safe to use now.

Change-Id: I915a9f62f36fc64086c7dce60ea753d3e564127c
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-10-04 08:18:15 +00:00
Nikolai Kosjar
84dd43f413 qbs build: Fix passing on include dir for intrinsics of libclang
In

    commit 31258ec555
    qbs build: Introduce libclang module.

"llvmVersion" was overlooked.

Because of this, the definition of CLANG_RESOURCE_DIR in
clangcodemodel.qbs led to an invalid path which eventually was
discarded.

Change-Id: Ia1eb50cf738df4affbedc99849bf5326a8e8fb19
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-11-24 13:51:32 +00:00
Nikolai Kosjar
fd1d10987c Clang: Require LLVM >= 3.9.0
We already ship with a cherry-picked change from version 3.9.

Change-Id: Iad09ac8db470506c5de0321f3a2346c549b11b31
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-11-15 08:46:46 +00:00
Nikolai Kosjar
19e026d7db Clang: Fix using forward slashes for CLANG_RESOURCE_DIR in qbs
Change-Id: I251567529ec33ef76043006c68749724208cc811
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-10-21 14:04:25 +00:00
Friedemann Kleint
e6b23dc2e5 clangcodemodel: Use forward slashes for CLANG_RESOURCE_DIR define
Adapt qmake and qbs files, fixing warnings on Windows:
clangutils.cpp(78): warning C4129: 'o': unrecognized character escape sequence
clangutils.cpp(78): warning C4129: 'L': unrecognized character escape sequence
clangutils.cpp(78): warning C4129: 'l': unrecognized character escape sequence

Change-Id: I7a5fe674665437582457645f2a081e1e38d5df77
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2016-10-21 10:29:40 +00:00
Nikolai Kosjar
9650adad14 Clang: Require at least LLVM 3.8.0
Change-Id: I2de3eef7bc06cba6298d64a9a042a01decc05384
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-07-11 08:22:32 +00:00
Nikolai Kosjar
fcc0648ba1 Clang: Emit a warning if LLVM_INSTALL_DIR is not set
Change-Id: I18f02e0878e2037857ccd85943c13bbac9cade6b
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-07-04 14:36:26 +00:00
Christian Kandeler
31258ec555 qbs build: Introduce libclang module.
This is The Right Way to detect libclang. Using a Probe will also
slightly improve performance in qbs 1.6 due to the result caching.

Change-Id: I063a8d108d02b620dda2df75dd8c014c84f27ec7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2016-06-17 13:33:03 +00:00