diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-09-19 15:48:52 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2019-09-20 10:17:00 +0200 |
commit | 065a946d397d6e9d323ce1c71aa3b79bf5514e14 (patch) | |
tree | 97b847487b667f5fb1f0369e4d9b2146cd54073e | |
parent | 392aced821225a3364dc6d2f8c4d7caede7ea8d5 (diff) |
Export clang versioning to support building with clang 10.0.0
Change-Id: Ib60d4d450387d974c4b194f71d02baed9f344385
Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | src/global/configure.json | 5 | ||||
-rw-r--r-- | src/global/configure.pri | 16 | ||||
-rw-r--r-- | src/linguist/lupdate/clangtoolastreader.h | 11 | ||||
-rw-r--r-- | src/linguist/lupdate/lupdate.pro | 5 |
4 files changed, 36 insertions, 1 deletions
diff --git a/src/global/configure.json b/src/global/configure.json index f364abf79..00132db9a 100644 --- a/src/global/configure.json +++ b/src/global/configure.json @@ -17,7 +17,10 @@ { "type": "varAssign", "name": "CLANG_INCLUDEPATH", "value": "tests.libclang.includepath" }, { "type": "varAssign", "name": "CLANG_LIBDIR", "value": "tests.libclang.libdir" }, { "type": "varAssign", "name": "CLANG_DEFINES", "value": "tests.libclang.defines" }, - { "type": "varAssign", "name": "CLANG_VERSION", "value": "tests.libclang.version" } + { "type": "varAssign", "name": "CLANG_VERSION", "value": "tests.libclang.version" }, + { "type": "varAssign", "name": "CLANG_MAJOR_VERSION", "value": "tests.libclang.major_version" }, + { "type": "varAssign", "name": "CLANG_MINOR_VERSION", "value": "tests.libclang.minor_version" }, + { "type": "varAssign", "name": "CLANG_PATCH_VERSION", "value": "tests.libclang.patch_version" } ] }, "clangcpp": { diff --git a/src/global/configure.pri b/src/global/configure.pri index a6357f4d1..013e0e757 100644 --- a/src/global/configure.pri +++ b/src/global/configure.pri @@ -223,6 +223,10 @@ defineTest(qtConfTest_libclang) { !isEmpty(LLVM_INSTALL_DIR): \ qtLog("Cannot determine version of clang installation in $${clangInstallDir}.") return(false) + } else { + CLANG_MAJOR_VERSION = $$extractMajorVersion($$CLANG_VERSION) + CLANG_MINOR_VERSION = $$extractMinorVersion($$CLANG_VERSION) + CLANG_PATCH_VERSION = $$extractPatchVersion($$CLANG_VERSION) } LIBCLANG_MAIN_HEADER = $$CLANG_INCLUDEPATH/clang-c/Index.h @@ -512,6 +516,18 @@ defineTest(qtConfTest_libclang) { export($${1}.version) $${1}.cache += version + $${1}.major_version = $$CLANG_MAJOR_VERSION + export($${1}.major_version) + $${1}.cache += major_version + + $${1}.minor_version = $$CLANG_MINOR_VERSION + export($${1}.minor_version) + $${1}.cache += minor_version + + $${1}.patch_version = $$CLANG_PATCH_VERSION + export($${1}.patch_version) + $${1}.cache += patch_version + $${1}.has_clangcpp = $$HAS_CLANGCPP export($${1}.has_clangcpp) $${1}.cache += has_clangcpp diff --git a/src/linguist/lupdate/clangtoolastreader.h b/src/linguist/lupdate/clangtoolastreader.h index e43bc471d..e339cca85 100644 --- a/src/linguist/lupdate/clangtoolastreader.h +++ b/src/linguist/lupdate/clangtoolastreader.h @@ -64,6 +64,10 @@ QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcClang) +#define LUPDATE_CLANG_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) +#define LUPDATE_CLANG_VERSION LUPDATE_CLANG_VERSION_CHECK(LUPDATE_CLANG_VERSION_MAJOR, \ + LUPDATE_CLANG_VERSION_MINOR, LUPDATE_CLANG_VERSION_PATCH) + class LupdateVisitor : public clang::RecursiveASTVisitor<LupdateVisitor> { public: @@ -120,10 +124,17 @@ public: : m_tor(tor) {} +#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(10,0,0)) + std::unique_ptr<clang::FrontendAction> create() override + { + return std::make_unique<LupdateFrontendAction>(m_tor); + } +#else clang::FrontendAction *create() override { return new LupdateFrontendAction(m_tor); } +#endif private: Translator *m_tor { nullptr }; diff --git a/src/linguist/lupdate/lupdate.pro b/src/linguist/lupdate/lupdate.pro index ddf115bab..f93e521d5 100644 --- a/src/linguist/lupdate/lupdate.pro +++ b/src/linguist/lupdate/lupdate.pro @@ -16,6 +16,11 @@ qtConfig(clangcpp) { !contains(QMAKE_DEFAULT_LIBDIRS, $$CLANG_LIBDIR):!disable_external_rpath: QMAKE_RPATHDIR += $$CLANG_LIBDIR DEFINES += $$shell_quote(CLANG_RESOURCE_DIR=\"$${CLANG_LIBDIR}/clang/$${CLANG_VERSION}/include\") + + DEFINES += $$shell_quote(LUPDATE_CLANG_VERSION_STR=\"$${CLANG_VERSION}\") \ + LUPDATE_CLANG_VERSION_MAJOR=$${CLANG_MAJOR_VERSION} \ + LUPDATE_CLANG_VERSION_MINOR=$${CLANG_MINOR_VERSION} \ + LUPDATE_CLANG_VERSION_PATCH=$${CLANG_PATCH_VERSION} } CONFIG += rtti_off |