From 8c506130849194b0f7838a7920b5f7cc94bfe619 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Wed, 6 Apr 2011 20:29:55 -0300 Subject: Added support for extra includes at module level. --- generator/cppgenerator.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'generator/cppgenerator.cpp') 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(typeDb->findType(packageName())); + //Extra includes s << endl << "// Extra includes" << endl; QList 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(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; -- cgit v1.2.3