aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-04-06 20:29:55 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:15:20 -0300
commit8c506130849194b0f7838a7920b5f7cc94bfe619 (patch)
tree78258643af563fc86cd24d236324697c33612751 /generator
parent821a177f50db4bb52467e3e5e713ba21434496df (diff)
Added support for extra includes at module level.
Diffstat (limited to 'generator')
-rw-r--r--generator/cppgenerator.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp
index 3be548832..72ca183b6 100644
--- a/generator/cppgenerator.cpp
+++ b/generator/cppgenerator.cpp
@@ -3737,9 +3737,14 @@ void CppGenerator::finishGeneration()
lookForEnumsInClassesNotToBeGenerated(globalEnums, metaClass);
}
+ TypeDatabase* typeDb = TypeDatabase::instance();
+ TypeSystemTypeEntry* moduleEntry = reinterpret_cast<TypeSystemTypeEntry*>(typeDb->findType(packageName()));
+
//Extra includes
s << endl << "// Extra includes" << endl;
QList<Include> includes;
+ if (moduleEntry)
+ includes = moduleEntry->extraIncludes();
foreach (AbstractMetaEnum* cppEnum, globalEnums)
includes.append(cppEnum->typeEntry()->extraIncludes());
qSort(includes.begin(), includes.end());
@@ -3747,7 +3752,6 @@ void CppGenerator::finishGeneration()
s << inc.toString() << endl;
s << endl;
- TypeSystemTypeEntry* moduleEntry = reinterpret_cast<TypeSystemTypeEntry*>(TypeDatabase::instance()->findType(packageName()));
CodeSnipList snips;
if (moduleEntry)
snips = moduleEntry->codeSnips();
@@ -3792,7 +3796,7 @@ void CppGenerator::finishGeneration()
}
s << "PyTypeObject** " << cppApiVariableName() << ";" << endl << endl;;
- foreach (const QString& requiredModule, TypeDatabase::instance()->requiredTargetImports())
+ foreach (const QString& requiredModule, typeDb->requiredTargetImports())
s << "PyTypeObject** " << cppApiVariableName(requiredModule) << ";" << endl << endl;;
s << "// Module initialization ";
@@ -3825,7 +3829,7 @@ void CppGenerator::finishGeneration()
s << endl;
}
- foreach (const QString& requiredModule, TypeDatabase::instance()->requiredTargetImports()) {
+ foreach (const QString& requiredModule, typeDb->requiredTargetImports()) {
s << INDENT << "if (!Shiboken::importModule(\"" << requiredModule << "\", &" << cppApiVariableName(requiredModule) << ")) {" << endl;
s << INDENT << INDENT << "PyErr_SetString(PyExc_ImportError," << "\"could not import ";
s << requiredModule << "\");" << endl << INDENT << INDENT << "return;" << endl;