diff options
author | Marco Bubke <marco.bubke@qt.io> | 2019-03-13 14:37:04 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-04-11 10:46:19 +0000 |
commit | 89e70ca785df08b448997927d7c28145f599857f (patch) | |
tree | 0383aee023540537a5183de5dbd0864430c4bedb | |
parent | 2f6d43745a2dafebcdcb324e9ee44525841cc30e (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.md | 5 | ||||
-rw-r--r-- | src/libs/libs.pro | 7 | ||||
-rw-r--r-- | src/libs/sqlite/README.md | 13 | ||||
-rw-r--r-- | src/libs/sqlite/sqlite-lib.pri | 2 | ||||
-rw-r--r-- | src/plugins/plugins.pro | 6 | ||||
-rw-r--r-- | src/shared/clang/clang_installation.pri | 28 | ||||
-rw-r--r-- | src/tools/tools.pro | 6 |
7 files changed, 38 insertions, 29 deletions
@@ -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) |