diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2020-11-04 15:19:03 +0100 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2020-11-10 18:14:48 +0100 |
commit | a4d956048b4679bf5b448340d1f3428793699990 (patch) | |
tree | fd382c2b6cadb813ac1939bf8a6149beecb60b2e /src/qmltyperegistrar | |
parent | d01ec7ebe3853faabc8843d169d288b4998bb209 (diff) |
qmltyperegistrar: Add past-major-version option
Adds the option to specify past major versions of modules to be registered.
This is necessary for modules that don't export any types themselves to work when built statically.
Change-Id: I4b4a379f92707ec64cbb32f91db9d010440b95a2
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
Diffstat (limited to 'src/qmltyperegistrar')
-rw-r--r-- | src/qmltyperegistrar/qmltyperegistrar.cpp | 12 | ||||
-rw-r--r-- | src/qmltyperegistrar/qmltypes.prf | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/qmltyperegistrar/qmltyperegistrar.cpp b/src/qmltyperegistrar/qmltyperegistrar.cpp index bf3c4c94d4..07d7955727 100644 --- a/src/qmltyperegistrar/qmltyperegistrar.cpp +++ b/src/qmltyperegistrar/qmltyperegistrar.cpp @@ -106,6 +106,12 @@ int main(int argc, char **argv) importNameOption.setValueName(QStringLiteral("module name")); parser.addOption(importNameOption); + QCommandLineOption pastMajorVersionOption(QStringLiteral("past-major-version")); + pastMajorVersionOption.setDescription(QStringLiteral("Past major version to use for type and module " + "registrations.")); + pastMajorVersionOption.setValueName(QStringLiteral("past major version")); + parser.addOption(pastMajorVersionOption); + QCommandLineOption majorVersionOption(QStringLiteral("major-version")); majorVersionOption.setDescription(QStringLiteral("Major version to use for type and module " "registrations.")); @@ -188,8 +194,14 @@ int main(int argc, char **argv) fprintf(output, "void %s()\n{", qPrintable(functionName)); const auto majorVersion = parser.value(majorVersionOption); + const auto pastMajorVersions = parser.values(pastMajorVersionOption); const auto minorVersion = parser.value(minorVersionOption); + for (const auto &version : pastMajorVersions) { + fprintf(output, "\n qmlRegisterModule(\"%s\", %s, 0);\n qmlRegisterModule(\"%s\", %s, 254);", + qPrintable(module), qPrintable(version), qPrintable(module), qPrintable(version)); + } + if (minorVersion.toInt() != 0) { fprintf(output, "\n qmlRegisterModule(\"%s\", %s, 0);", qPrintable(module), qPrintable(majorVersion)); diff --git a/src/qmltyperegistrar/qmltypes.prf b/src/qmltyperegistrar/qmltypes.prf index e02d425f2a..0b857ad099 100644 --- a/src/qmltyperegistrar/qmltypes.prf +++ b/src/qmltyperegistrar/qmltypes.prf @@ -63,6 +63,10 @@ QML_TYPEREGISTRAR_FLAGS = \ --minor-version=$$QML_IMPORT_MINOR_VERSION \ --foreign-types=$$join(QML_FOREIGN_METATYPES, ',') +!isEmpty(QML_PAST_MAJOR_VERSIONS) { + for(past_major_version,QML_PAST_MAJOR_VERSIONS): QML_TYPEREGISTRAR_FLAGS += --past-major-version $$past_major_version +} + !isEmpty(MODULE_PRIVATE_INCLUDES): QML_TYPEREGISTRAR_FLAGS += --private-includes METATYPES_JSON = $${TARGET_BASENAME}_metatypes.json |