summaryrefslogtreecommitdiffstats
path: root/src/linguist/lupdate
diff options
context:
space:
mode:
Diffstat (limited to 'src/linguist/lupdate')
-rw-r--r--src/linguist/lupdate/clangtoolastreader.h11
-rw-r--r--src/linguist/lupdate/lupdate.pro5
2 files changed, 16 insertions, 0 deletions
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