diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-06 15:41:05 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-06 15:42:54 +0200 |
commit | d81f111a13177f1fc78e770baa645a02125feaac (patch) | |
tree | ee2ce603bb14fd1d883595e8398c774583e66130 /sources/shiboken2/generator/shiboken2/cppgenerator.cpp | |
parent | 0e3a58441644faa14698a44f2ed682150430529a (diff) | |
parent | 80f8731ee894d3cd40be9a2a0f3778f60dbc6afa (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: I89aa3d4c4a3fa274e2c5ccd8b5facb9531137e80
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/cppgenerator.cpp')
-rw-r--r-- | sources/shiboken2/generator/shiboken2/cppgenerator.cpp | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp index 388358249..ab8f5a6fc 100644 --- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp +++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp @@ -745,18 +745,7 @@ void CppGenerator::generateClass(QTextStream &s, const GeneratorContext &classCo if (metaClass->isPolymorphic() && metaClass->baseClass()) writeTypeDiscoveryFunction(s, metaClass); - - for (AbstractMetaEnum *cppEnum : qAsConst(classEnums)) { - if (cppEnum->isAnonymous() || cppEnum->isPrivate()) - continue; - - bool hasFlags = cppEnum->typeEntry()->flags(); - if (hasFlags) { - writeFlagsMethods(s, cppEnum); - writeFlagsNumberMethodsDefinition(s, cppEnum); - s << Qt::endl; - } - } + writeFlagsNumberMethodsDefinitions(s, classEnums); s << Qt::endl; writeConverterFunctions(s, metaClass, classContext); @@ -5065,6 +5054,17 @@ void CppGenerator::writeFlagsNumberMethodsDefinition(QTextStream &s, const Abstr s << "};\n\n"; } +void CppGenerator::writeFlagsNumberMethodsDefinitions(QTextStream &s, const AbstractMetaEnumList &enums) +{ + for (AbstractMetaEnum *e : enums) { + if (!e->isAnonymous() && !e->isPrivate() && e->typeEntry()->flags()) { + writeFlagsMethods(s, e); + writeFlagsNumberMethodsDefinition(s, e); + s << '\n'; + } + } +} + void CppGenerator::writeFlagsBinaryOperator(QTextStream &s, const AbstractMetaEnum *cppEnum, const QString &pyOpName, const QString &cppOpName) { @@ -5898,6 +5898,9 @@ bool CppGenerator::finishGeneration() s << converterImpl << Qt::endl; s << "} // namespace Shiboken\n\n"; } + + writeFlagsNumberMethodsDefinitions(s, globalEnums); + s << '\n'; } const QStringList &requiredModules = typeDb->requiredTargetImports(); @@ -5946,14 +5949,6 @@ bool CppGenerator::finishGeneration() s << Qt::endl; } - s << "#if defined _WIN32 || defined __CYGWIN__\n"; - s << " #define SBK_EXPORT_MODULE __declspec(dllexport)\n"; - s << "#elif __GNUC__ >= 4\n"; - s << " #define SBK_EXPORT_MODULE __attribute__ ((visibility(\"default\")))\n"; - s << "#else\n"; - s << " #define SBK_EXPORT_MODULE\n"; - s << "#endif\n\n"; - s << "static struct PyModuleDef moduledef = {\n"; s << " /* m_base */ PyModuleDef_HEAD_INIT,\n"; s << " /* m_name */ \"" << moduleName() << "\",\n"; |