aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-06 15:41:05 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-06 15:42:54 +0200
commitd81f111a13177f1fc78e770baa645a02125feaac (patch)
treeee2ce603bb14fd1d883595e8398c774583e66130 /sources/shiboken2/generator/shiboken2/cppgenerator.cpp
parent0e3a58441644faa14698a44f2ed682150430529a (diff)
parent80f8731ee894d3cd40be9a2a0f3778f60dbc6afa (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/cppgenerator.cpp')
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.cpp35
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";