aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2019-03-13 14:37:04 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2019-04-11 10:46:19 +0000
commit89e70ca785df08b448997927d7c28145f599857f (patch)
tree0383aee023540537a5183de5dbd0864430c4bedb
parent2f6d43745a2dafebcdcb324e9ee44525841cc30e (diff)
Enable Clang Refactoring compiling
We change QTC_ENABLE_CLANG_LIBTOOLING to QTC_DISABLE_CLANG_REFACTORING, so you now have to opt out instead of opt in. We bump the minimum version of LLVM to 7.0 too because we mentioned that in the README already. Change-Id: Ic4ee29a74a3ed79634ed8ea50be84d7bdc7db4ef Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--README.md5
-rw-r--r--src/libs/libs.pro7
-rw-r--r--src/libs/sqlite/README.md13
-rw-r--r--src/libs/sqlite/sqlite-lib.pri2
-rw-r--r--src/plugins/plugins.pro6
-rw-r--r--src/shared/clang/clang_installation.pri28
-rw-r--r--src/tools/tools.pro6
7 files changed, 38 insertions, 29 deletions
diff --git a/README.md b/README.md
index af99a5791a..41c0430251 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,8 @@ Prerequisites:
* On Linux: g++ 5.3 or later
* LLVM/Clang 7.0.0 or later (optional, needed for the Clang Code Model, Clang Tools, ClangFormat,
Clang PCH Manager and Clang Refactoring plugins, see the section
- "Get LLVM/Clang for the Clang Code Model")
+ "Get LLVM/Clang for the Clang Code Model". The LLVM C++ API provides no compatibility garantee,
+ so if later versions don't compile we don't support that version.)
* CMake (only for manual builds of LLVM/Clang)
* Qbs 1.7.x (optional, sources also contain Qbs itself)
@@ -46,6 +47,8 @@ You can build Qt Creator with
# Optional, needed for the Clang Code Model if llvm-config is not in PATH:
export LLVM_INSTALL_DIR=/path/to/llvm (or "set" on Windows)
+ # Optional, disable Clang Refactoring
+ export QTC_DISABLE_CLANG_REFACTORING=1
# Optional, needed to let the QbsProjectManager plugin use system Qbs:
export QBS_INSTALL_DIR=/path/to/qbs
# Optional, needed for the Python enabled dumper on Windows
diff --git a/src/libs/libs.pro b/src/libs/libs.pro
index 26495bbbf0..20b7a21cb8 100644
--- a/src/libs/libs.pro
+++ b/src/libs/libs.pro
@@ -14,10 +14,15 @@ SUBDIRS += \
qmleditorwidgets \
glsl \
ssh \
- sqlite \
clangsupport \
languageserverprotocol
+
+QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING)
+isEmpty(QTC_DISABLE_CLANG_REFACTORING) {
+ SUBDIRS += sqlite
+}
+
qtHaveModule(quick) {
SUBDIRS += \
tracing
diff --git a/src/libs/sqlite/README.md b/src/libs/sqlite/README.md
new file mode 100644
index 0000000000..88944dcd42
--- /dev/null
+++ b/src/libs/sqlite/README.md
@@ -0,0 +1,13 @@
+# SQLite
+
+Minimum version is the same as the sqlite version in the source tree.
+
+We compile SQLite with the flowing settings:
+* SQLITE_THREADSAFE=2
+* SQLITE_ENABLE_FTS4
+* SQLITE_ENABLE_FTS3_PARENTHESIS
+* SQLITE_ENABLE_UNLOCK_NOTIFY
+* SQLITE_ENABLE_COLUMN_METADATA
+* SQLITE_ENABLE_JSON1
+
+Be prepared that we demand more functionality from SQLite in the future.
diff --git a/src/libs/sqlite/sqlite-lib.pri b/src/libs/sqlite/sqlite-lib.pri
index fb46370052..052e533d2e 100644
--- a/src/libs/sqlite/sqlite-lib.pri
+++ b/src/libs/sqlite/sqlite-lib.pri
@@ -48,4 +48,6 @@ HEADERS += \
DEFINES += SQLITE_THREADSAFE=2 SQLITE_ENABLE_FTS4 SQLITE_ENABLE_FTS3_PARENTHESIS \
SQLITE_ENABLE_UNLOCK_NOTIFY SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_JSON1
+OTHER_FILES += README.md
+
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 437f9d58ee..dab57ff855 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -110,12 +110,10 @@ exists(../shared/qbs/qbs.pro)|!isEmpty(QBS_INSTALL_DIR): \
SUBDIRS += \
clangcodemodel
-QTC_ENABLE_CLANG_LIBTOOLING=$$(QTC_ENABLE_CLANG_LIBTOOLING)
-!isEmpty(QTC_ENABLE_CLANG_LIBTOOLING) {
+QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING)
+isEmpty(QTC_DISABLE_CLANG_REFACTORING) {
SUBDIRS += clangrefactoring
SUBDIRS += clangpchmanager
-} else {
- warning("Not building the clang refactoring plugin and the pch manager plugin.")
}
isEmpty(IDE_PACKAGE_MODE) {
diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri
index 8c75b6cc82..107604a08b 100644
--- a/src/shared/clang/clang_installation.pri
+++ b/src/shared/clang/clang_installation.pri
@@ -163,10 +163,10 @@ isEmpty(LLVM_VERSION) {
$$llvmWarningOrError(\
"Cannot determine clang version. Set LLVM_INSTALL_DIR to build the Clang Code Model",\
"LLVM_INSTALL_DIR does not contain a valid llvm-config, candidate: $$llvm_config")
-} else:!versionIsAtLeast($$LLVM_VERSION, 6, 0, 0): {
+} else:!versionIsAtLeast($$LLVM_VERSION, 7, 0, 0): {
# CLANG-UPGRADE-CHECK: Adapt minimum version numbers.
$$llvmWarningOrError(\
- "LLVM/Clang version >= 6.0.0 required, version provided: $$LLVM_VERSION")
+ "LLVM/Clang version >= 7.0.0 required, version provided: $$LLVM_VERSION")
LLVM_VERSION =
} else {
# CLANG-UPGRADE-CHECK: Remove suppression if this warning is resolved.
@@ -196,19 +196,11 @@ isEmpty(LLVM_VERSION) {
CLANGFORMAT_MAIN_HEADER = $$LLVM_INCLUDEPATH/clang/Format/Format.h
exists($$CLANGFORMAT_MAIN_HEADER) {
- versionIsAtLeast($$LLVM_VERSION, 7, 0, 0): {
- CLANGFORMAT_LIBS=-lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangLex -lclangBasic
- ALL_CLANG_LIBS=-lclangFormat -lclangToolingInclusions -lclangTooling -lclangToolingCore \
- -lclangRewrite -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
- -lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
- -lclangASTMatchers -lclangAST -lclangLex -lclangBasic
- } else:versionIsAtLeast($$LLVM_VERSION, 6, 0, 0): {
- CLANGFORMAT_LIBS=-lclangFormat -lclangToolingCore -lclangRewrite -lclangLex -lclangBasic
- ALL_CLANG_LIBS=-lclangFormat -lclangTooling -lclangToolingCore \
- -lclangRewrite -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
- -lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
- -lclangASTMatchers -lclangAST -lclangLex -lclangBasic
- }
+ CLANGFORMAT_LIBS=-lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangLex -lclangBasic
+ ALL_CLANG_LIBS=-lclangFormat -lclangToolingInclusions -lclangTooling -lclangToolingCore \
+ -lclangRewrite -lclangIndex -lclangFrontend -lclangParse -lclangSerialization \
+ -lclangSema -lclangEdit -lclangAnalysis -lclangDriver -lclangDynamicASTMatchers \
+ -lclangASTMatchers -lclangAST -lclangLex -lclangBasic
win32:CLANGFORMAT_LIBS += -lversion
}
win32:ALL_CLANG_LIBS += -lversion
@@ -232,12 +224,10 @@ isEmpty(LLVM_VERSION) {
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBCLANG_LIBS = -L$${LLVM_LIBDIR}
LIBCLANG_LIBS += $${CLANG_LIB}
- QTC_ENABLE_CLANG_LIBTOOLING=$$(QTC_ENABLE_CLANG_LIBTOOLING)
- !isEmpty(QTC_ENABLE_CLANG_LIBTOOLING) {
+ QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING)
+ isEmpty(QTC_DISABLE_CLANG_REFACTORING) {
!contains(QMAKE_DEFAULT_LIBDIRS, $$LLVM_LIBDIR): LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}
LIBTOOLING_LIBS += $$CLANGTOOLING_LIBS $$LLVM_STATIC_LIBS
- } else {
- warning("Clang LibTooling is disabled. Set QTC_ENABLE_CLANG_LIBTOOLING to enable it.")
}
!isEmpty(CLANGFORMAT_LIBS) {
diff --git a/src/tools/tools.pro b/src/tools/tools.pro
index e0ab60e2ee..e152ec34ec 100644
--- a/src/tools/tools.pro
+++ b/src/tools/tools.pro
@@ -26,12 +26,10 @@ mac {
SUBDIRS += clangbackend
-QTC_ENABLE_CLANG_LIBTOOLING=$$(QTC_ENABLE_CLANG_LIBTOOLING)
-!isEmpty(QTC_ENABLE_CLANG_LIBTOOLING) {
+QTC_DISABLE_CLANG_REFACTORING=$$(QTC_DISABLE_CLANG_REFACTORING)
+isEmpty(QTC_DISABLE_CLANG_REFACTORING) {
SUBDIRS += clangrefactoringbackend
SUBDIRS += clangpchmanagerbackend
-} else {
- warning("Not building the clang refactoring backend and the pch manager backend.")
}
isEmpty(BUILD_CPLUSPLUS_TOOLS):BUILD_CPLUSPLUS_TOOLS=$$(BUILD_CPLUSPLUS_TOOLS)