From 8c03a55d03b2e63b760ec3be4a37285304b65b32 Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Thu, 15 Apr 2010 18:45:40 -0300 Subject: Do not set the include file on TypeEntries when the include file does not exists or it's the global header. --- abstractmetabuilder.cpp | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'abstractmetabuilder.cpp') diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp index 994448b9a..797f76d2d 100644 --- a/abstractmetabuilder.cpp +++ b/abstractmetabuilder.cpp @@ -522,8 +522,7 @@ bool AbstractMetaBuilder::build(QIODevice* input) continue; } - QFileInfo info(func->fileName()); - funcEntry->setInclude(Include(Include::IncludePath, info.fileName())); + setInclude(funcEntry, func->fileName()); m_globalFunctions << metaFunc; } @@ -634,10 +633,8 @@ AbstractMetaClass *AbstractMetaBuilder::traverseNamespace(NamespaceModelItem nam popScope(); m_namespacePrefix = currentScope()->qualifiedName().join("::"); - if (!type->include().isValid()) { - QFileInfo info(namespaceItem->fileName()); - type->setInclude(Include(Include::IncludePath, info.fileName())); - } + if (!type->include().isValid()) + setInclude(type, namespaceItem->fileName()); return metaClass; } @@ -939,10 +936,9 @@ AbstractMetaEnum *AbstractMetaBuilder::traverseEnum(EnumModelItem enumItem, Abst m_enums << metaEnum; - if (!metaEnum->typeEntry()->include().isValid()) { - QFileInfo info(enumItem->fileName()); - metaEnum->typeEntry()->setInclude(Include(Include::IncludePath, info.fileName())); - } + if (!metaEnum->typeEntry()->include().isValid()) + setInclude(metaEnum->typeEntry(), enumItem->fileName()); + metaEnum->setOriginalAttributes(metaEnum->attributes()); return metaEnum; @@ -985,10 +981,8 @@ AbstractMetaClass* AbstractMetaBuilder::traverseTypeAlias(TypeAliasModelItem typ *metaClass += AbstractMetaAttributes::Public; // Set the default include file name - if (!type->include().isValid()) { - QFileInfo info(typeAlias->fileName()); - type->setInclude(Include(Include::IncludePath, info.fileName())); - } + if (!type->include().isValid()) + setInclude(type, typeAlias->fileName()); return metaClass; } @@ -1098,10 +1092,8 @@ AbstractMetaClass *AbstractMetaBuilder::traverseClass(ClassModelItem classItem) m_currentClass = oldCurrentClass; // Set the default include file name - if (!type->include().isValid()) { - QFileInfo info(classItem->fileName()); - type->setInclude(Include(Include::IncludePath, info.fileName())); - } + if (!type->include().isValid()) + setInclude(type, classItem->fileName()); return metaClass; } @@ -2749,3 +2741,16 @@ AbstractMetaArgumentList AbstractMetaBuilder::reverseList(const AbstractMetaArgu return ret; } + +void AbstractMetaBuilder::setGlobalHeader(const QString& globalHeader) +{ + m_globalHeader = QFileInfo(globalHeader); +} + +void AbstractMetaBuilder::setInclude(TypeEntry* te, const QString& fileName) const +{ + + QFileInfo info(fileName); + if (info.exists() && m_globalHeader != info) + te->setInclude(Include(Include::IncludePath, info.fileName())); +} -- cgit v1.2.3