forked from qt-creator/qt-creator
Remove "icheck build" test.
Does not build, is not being maintained, purpose is unclear. Change-Id: I00f3bbc9580b57e3945882a411af502a78f4864f Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
committed by
Eike Ziller
parent
6e09fa8c70
commit
0d2b1aedeb
-37
@@ -231,12 +231,6 @@ bool Function::isEqualTo(const Type *other) const
|
||||
return false;
|
||||
else if (isVolatile() != o->isVolatile())
|
||||
return false;
|
||||
#ifdef ICHECK_BUILD
|
||||
else if (isInvokable() != o->isInvokable())
|
||||
return false;
|
||||
else if (isSignal() != o->isSignal())
|
||||
return false;
|
||||
#endif
|
||||
|
||||
const Name *l = unqualifiedName();
|
||||
const Name *r = o->unqualifiedName();
|
||||
@@ -256,37 +250,6 @@ bool Function::isEqualTo(const Type *other) const
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef ICHECK_BUILD
|
||||
bool Function::isEqualTo(const Function* fct, bool ignoreName/* = false*/) const
|
||||
{
|
||||
if (!ignoreName)
|
||||
return isEqualTo((Type*)fct);
|
||||
|
||||
if (! fct)
|
||||
return false;
|
||||
else if (isConst() != fct->isConst())
|
||||
return false;
|
||||
else if (isVolatile() != fct->isVolatile())
|
||||
return false;
|
||||
else if (isInvokable() != fct->isInvokable())
|
||||
return false;
|
||||
else if (isSignal() != fct->isSignal())
|
||||
return false;
|
||||
|
||||
if (_arguments->symbolCount() != fct->_arguments->symbolCount())
|
||||
return false;
|
||||
else if (! _returnType.isEqualTo(fct->_returnType))
|
||||
return false;
|
||||
for (unsigned i = 0; i < _arguments->symbolCount(); ++i) {
|
||||
Symbol *l = _arguments->symbolAt(i);
|
||||
Symbol *r = fct->_arguments->symbolAt(i);
|
||||
if (! l->type().isEqualTo(r->type()))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
void Function::accept0(TypeVisitor *visitor)
|
||||
{ visitor->visit(this); }
|
||||
|
||||
|
||||
-4
@@ -341,10 +341,6 @@ public:
|
||||
bool isPureVirtual() const;
|
||||
void setPureVirtual(bool isPureVirtual);
|
||||
|
||||
#ifdef ICHECK_BUILD
|
||||
bool isEqualTo(const Function* fct, bool ignoreName = false) const;
|
||||
#endif
|
||||
|
||||
// Symbol's interface
|
||||
virtual FullySpecifiedType type() const;
|
||||
|
||||
|
||||
@@ -36,31 +36,25 @@
|
||||
#include "cpphighlightingsupport.h"
|
||||
#include "cpphighlightingsupportinternal.h"
|
||||
#include "abstracteditorsupport.h"
|
||||
#ifndef ICHECK_BUILD
|
||||
# include "cpptoolsconstants.h"
|
||||
# include "cpptoolseditorsupport.h"
|
||||
# include "cppfindreferences.h"
|
||||
#endif
|
||||
#include "cpptoolsconstants.h"
|
||||
#include "cpptoolseditorsupport.h"
|
||||
#include "cppfindreferences.h"
|
||||
|
||||
#include <functional>
|
||||
#include <QtConcurrentRun>
|
||||
#ifndef ICHECK_BUILD
|
||||
# include <QFutureSynchronizer>
|
||||
# include <utils/runextensions.h>
|
||||
# include <texteditor/itexteditor.h>
|
||||
# include <texteditor/basetexteditor.h>
|
||||
# include <projectexplorer/project.h>
|
||||
# include <projectexplorer/projectexplorer.h>
|
||||
# include <projectexplorer/projectexplorerconstants.h>
|
||||
# include <projectexplorer/session.h>
|
||||
# include <coreplugin/icore.h>
|
||||
# include <coreplugin/mimedatabase.h>
|
||||
# include <coreplugin/editormanager/editormanager.h>
|
||||
# include <coreplugin/progressmanager/progressmanager.h>
|
||||
# include <extensionsystem/pluginmanager.h>
|
||||
#else
|
||||
# include <QDir>
|
||||
#endif
|
||||
#include <QFutureSynchronizer>
|
||||
#include <utils/runextensions.h>
|
||||
#include <texteditor/itexteditor.h>
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
#include <projectexplorer/session.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/progressmanager/progressmanager.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
#include <utils/hostosinfo.h>
|
||||
#include <utils/qtcassert.h>
|
||||
@@ -199,7 +193,6 @@ static const char pp_configuration[] =
|
||||
"#define __inline inline\n"
|
||||
"#define __forceinline inline\n";
|
||||
|
||||
#ifndef ICHECK_BUILD
|
||||
CppPreprocessor::CppPreprocessor(QPointer<CppModelManager> modelManager, bool dumpFileNameWhileParsing)
|
||||
: snapshot(modelManager->snapshot()),
|
||||
m_modelManager(modelManager),
|
||||
@@ -210,16 +203,6 @@ CppPreprocessor::CppPreprocessor(QPointer<CppModelManager> modelManager, bool du
|
||||
preprocess.setKeepComments(true);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
CppPreprocessor::CppPreprocessor(QPointer<CPlusPlus::ParseManager> modelManager)
|
||||
: preprocess(this, &env),
|
||||
m_dumpFileNameWhileParsing(false),
|
||||
m_revision(0)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
CppPreprocessor::~CppPreprocessor()
|
||||
{ }
|
||||
|
||||
@@ -299,7 +282,6 @@ void CppPreprocessor::setProjectFiles(const QStringList &files)
|
||||
void CppPreprocessor::setTodo(const QStringList &files)
|
||||
{ m_todo = QSet<QString>::fromList(files); }
|
||||
|
||||
#ifndef ICHECK_BUILD
|
||||
namespace {
|
||||
class Process: public std::unary_function<Document::Ptr, void>
|
||||
{
|
||||
@@ -334,7 +316,6 @@ public:
|
||||
}
|
||||
};
|
||||
} // end of anonymous namespace
|
||||
#endif
|
||||
|
||||
void CppPreprocessor::run(const QString &fileName)
|
||||
{
|
||||
@@ -639,21 +620,11 @@ void CppPreprocessor::sourceNeeded(unsigned line, QString &fileName, IncludeType
|
||||
snapshot.insert(doc);
|
||||
m_todo.remove(fileName);
|
||||
|
||||
#ifndef ICHECK_BUILD
|
||||
Process process(m_modelManager, doc, snapshot, m_workingCopy);
|
||||
|
||||
process();
|
||||
|
||||
(void) switchDocument(previousDoc);
|
||||
#else
|
||||
doc->releaseSource();
|
||||
Document::CheckMode mode = Document::FastCheck;
|
||||
mode = Document::FullCheck;
|
||||
doc->parse();
|
||||
doc->check(mode);
|
||||
|
||||
(void) switchDocument(previousDoc);
|
||||
#endif
|
||||
}
|
||||
|
||||
Document::Ptr CppPreprocessor::switchDocument(Document::Ptr doc)
|
||||
@@ -663,7 +634,6 @@ Document::Ptr CppPreprocessor::switchDocument(Document::Ptr doc)
|
||||
return previousDoc;
|
||||
}
|
||||
|
||||
#ifndef ICHECK_BUILD
|
||||
void CppModelManager::updateModifiedSourceFiles()
|
||||
{
|
||||
const Snapshot snapshot = this->snapshot();
|
||||
@@ -1437,6 +1407,3 @@ QList<Document::DiagnosticMessage> CppModelManager::extraDiagnostics(const QStri
|
||||
}
|
||||
return m_extraDiagnostics.value(fileName).value(kind);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -34,26 +34,19 @@
|
||||
#include "cpptools_global.h"
|
||||
#include "cpptoolsconstants.h"
|
||||
#include "ModelManagerInterface.h"
|
||||
#ifndef ICHECK_BUILD
|
||||
# include <projectexplorer/project.h>
|
||||
#endif
|
||||
#include <projectexplorer/project.h>
|
||||
#include <cplusplus/CppDocument.h>
|
||||
#include <cplusplus/PreprocessorClient.h>
|
||||
#ifndef ICHECK_BUILD
|
||||
# include <texteditor/basetexteditor.h>
|
||||
#endif
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <cplusplus/PreprocessorEnvironment.h>
|
||||
#include <cplusplus/pp-engine.h>
|
||||
#ifdef ICHECK_BUILD
|
||||
# include "parsemanager.h"
|
||||
#else
|
||||
# include <QHash>
|
||||
# include <QFutureInterface>
|
||||
# include <QFutureSynchronizer>
|
||||
# include <QMutex>
|
||||
# include <QTimer>
|
||||
# include <QTextEdit> // for QTextEdit::ExtraSelection
|
||||
#endif
|
||||
|
||||
#include <QHash>
|
||||
#include <QFutureInterface>
|
||||
#include <QFutureSynchronizer>
|
||||
#include <QMutex>
|
||||
#include <QTimer>
|
||||
#include <QTextEdit> // for QTextEdit::ExtraSelection
|
||||
|
||||
namespace Core {
|
||||
class IEditor;
|
||||
@@ -83,7 +76,6 @@ class CppEditorSupport;
|
||||
class CppPreprocessor;
|
||||
class CppFindReferences;
|
||||
|
||||
#ifndef ICHECK_BUILD
|
||||
class CPPTOOLS_EXPORT CppModelManager : public CPlusPlus::CppModelManagerInterface
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -255,16 +247,11 @@ private:
|
||||
CppHighlightingSupportFactory *m_highlightingFactory;
|
||||
CppHighlightingSupportFactory *m_highlightingFallback;
|
||||
};
|
||||
#endif
|
||||
|
||||
class CPPTOOLS_EXPORT CppPreprocessor: public CPlusPlus::Client
|
||||
{
|
||||
public:
|
||||
#ifndef ICHECK_BUILD
|
||||
CppPreprocessor(QPointer<CppModelManager> modelManager, bool dumpFileNameWhileParsing = false);
|
||||
#else
|
||||
CppPreprocessor(QPointer<CPlusPlus::ParseManager> modelManager);
|
||||
#endif
|
||||
virtual ~CppPreprocessor();
|
||||
|
||||
void setRevision(unsigned revision);
|
||||
@@ -313,9 +300,7 @@ protected:
|
||||
virtual void sourceNeeded(unsigned line, QString &fileName, IncludeType type);
|
||||
|
||||
private:
|
||||
#ifndef ICHECK_BUILD
|
||||
QPointer<CppModelManager> m_modelManager;
|
||||
#endif
|
||||
bool m_dumpFileNameWhileParsing;
|
||||
CPlusPlus::Environment env;
|
||||
CPlusPlus::Preprocessor preprocess;
|
||||
|
||||
@@ -9,7 +9,6 @@ SUBDIRS += \
|
||||
environment \
|
||||
fakevim \
|
||||
generichighlighter \
|
||||
# icheckbuild \
|
||||
profilewriter \
|
||||
ioutils \
|
||||
qtcprocess \
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
CONFIG += qtestlib testcase
|
||||
|
||||
include(../../../qtcreator.pri)
|
||||
include($$IDE_SOURCE_TREE/src/libs/cplusplus/cplusplus.pri)
|
||||
include($$IDE_SOURCE_TREE/src/plugins/cpptools/cpptools.pri)
|
||||
|
||||
QT += testlib
|
||||
|
||||
DEFINES += ICHECK_BUILD ICHECK_APP_BUILD
|
||||
|
||||
INCLUDEPATH += $$IDE_SOURCE_TREE/src/libs/cplusplus
|
||||
INCLUDEPATH += $$IDE_SOURCE_TREE/src/plugins
|
||||
LIBS += $$IDE_SOURCE_TREE/lib/qtcreator/plugins
|
||||
|
||||
HEADERS += ichecklib.h \
|
||||
ichecklib_global.h \
|
||||
parsemanager.h
|
||||
SOURCES += ichecklib.cpp \
|
||||
parsemanager.cpp \
|
||||
tst_icheckbuild.cpp
|
||||
@@ -1,114 +0,0 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "ichecklib.h"
|
||||
#include "parsemanager.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <iostream>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QProcess>
|
||||
|
||||
QStringList getQTIncludePath()
|
||||
{
|
||||
QStringList ret;
|
||||
QStringList processevironment = QProcess::systemEnvironment();
|
||||
foreach(QString item, processevironment){
|
||||
if(item.indexOf("QTDIR=") == 0){
|
||||
QString qtpath = item.remove("QTDIR=");
|
||||
ret << qtpath + "/include";
|
||||
ret << qtpath + "/include/ActiveQt";
|
||||
ret << qtpath + "/include/phonon";
|
||||
ret << qtpath + "/include/phonon_compat";
|
||||
ret << qtpath + "/include/Qt";
|
||||
ret << qtpath + "/include/Qt3Support";
|
||||
ret << qtpath + "/include/QtAssistant";
|
||||
ret << qtpath + "/include/QtCore";
|
||||
ret << qtpath + "/include/QtDBus";
|
||||
ret << qtpath + "/include/QtDeclarative";
|
||||
ret << qtpath + "/include/QtDesigner";
|
||||
ret << qtpath + "/include/QtGui";
|
||||
ret << qtpath + "/include/QtHelp";
|
||||
ret << qtpath + "/include/QtMultimedia";
|
||||
ret << qtpath + "/include/QtNetwork";
|
||||
ret << qtpath + "/include/QtOpenGL";
|
||||
ret << qtpath + "/include/QtOpenVG";
|
||||
ret << qtpath + "/include/QtScript";
|
||||
ret << qtpath + "/include/QtScriptTools";
|
||||
ret << qtpath + "/include/QtSql";
|
||||
ret << qtpath + "/include/QtSvg";
|
||||
ret << qtpath + "/include/QtTest";
|
||||
ret << qtpath + "/include/QtUiTools";
|
||||
ret << qtpath + "/include/QtWebKit";
|
||||
ret << qtpath + "/include/QtXml";
|
||||
ret << qtpath + "/include/QtXmlPatterns";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
ICheckLib::ICheckLib()
|
||||
: pParseManager(0)
|
||||
{
|
||||
}
|
||||
|
||||
void ICheckLib::ParseHeader(const QStringList& includePath, const QStringList& filelist)
|
||||
{
|
||||
if(pParseManager)
|
||||
delete pParseManager;
|
||||
pParseManager = 0;
|
||||
pParseManager = new CPlusPlus::ParseManager();
|
||||
pParseManager->setIncludePath(includePath);
|
||||
pParseManager->parse(filelist);
|
||||
}
|
||||
|
||||
bool ICheckLib::check(const ICheckLib& ichecklib /*ICheckLib from interface header*/, QString outputfile)
|
||||
{
|
||||
if(pParseManager){
|
||||
CPlusPlus::ParseManager* cpparsemanager = ichecklib.pParseManager;
|
||||
return pParseManager->checkAllMetadatas(cpparsemanager, outputfile);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QStringList ICheckLib::getErrorMsg()
|
||||
{
|
||||
QStringList ret;
|
||||
if(pParseManager){
|
||||
ret.append(pParseManager->getErrorMsg());
|
||||
}
|
||||
else
|
||||
ret << "no file was parsed.";
|
||||
return ret;
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef ICHECKLIB_H
|
||||
#define ICHECKLIB_H
|
||||
|
||||
#include <QStringList>
|
||||
#include "ichecklib_global.h"
|
||||
|
||||
namespace CPlusPlus{
|
||||
class ParseManager;
|
||||
}
|
||||
class ICHECKLIBSHARED_EXPORT ICheckLib {
|
||||
public:
|
||||
ICheckLib();
|
||||
void ParseHeader(const QStringList& includePath, const QStringList& filelist);
|
||||
bool check(const ICheckLib& ichecklib /*ICheckLib from interface header*/, QString outputfile);
|
||||
QStringList getErrorMsg();
|
||||
private:
|
||||
CPlusPlus::ParseManager* pParseManager;
|
||||
};
|
||||
|
||||
#endif // ICHECKLIB_H
|
||||
@@ -1,46 +0,0 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef ICHECKLIB_GLOBAL_H
|
||||
#define ICHECKLIB_GLOBAL_H
|
||||
|
||||
#include <qglobal.h>
|
||||
|
||||
|
||||
#ifdef ICHECK_APP_BUILD
|
||||
# define ICHECKLIBSHARED_EXPORT
|
||||
#else
|
||||
# if defined(ICHECKLIB_LIBRARY)
|
||||
# define ICHECKLIBSHARED_EXPORT Q_DECL_EXPORT
|
||||
# else
|
||||
# define ICHECKLIBSHARED_EXPORT Q_DECL_IMPORT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif // ICHECKLIB_GLOBAL_H
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,305 +0,0 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
/*
|
||||
** Description:
|
||||
**
|
||||
** The ParseManager parses and compares to different header files
|
||||
** of its metadata. This can be used for checking if an Interface
|
||||
** is implemented complete.
|
||||
**
|
||||
** How to use it:
|
||||
**
|
||||
** //Parse the interface header
|
||||
** ParseManager* iParseManager = new ParseManager();
|
||||
** iParseManager->setIncludePath(iIncludepathlist);
|
||||
** iParseManager->parse(iFilelist);
|
||||
**
|
||||
** //Parse the header that needs to be compared against the interface header
|
||||
** ParseManager* chParseManager = new ParseManager();
|
||||
** chIncludepathlist << getQTIncludePath();
|
||||
* chParseManager->setIncludePath(chIncludepathlist);
|
||||
** chParseManager->parse(chFilelist);
|
||||
**
|
||||
** if(!chParseManager->checkAllMetadatas(iParseManager)){
|
||||
** cout << "Following interface items are missing:" << endl;
|
||||
** QStringList errorlist = chParseManager->getErrorMsg();
|
||||
** foreach(QString msg, errorlist){
|
||||
** cout << (const char *)msg.toLatin1() << endl;
|
||||
** }
|
||||
** return -1;
|
||||
** }
|
||||
** else
|
||||
** cout << "Interface is full defined.";
|
||||
*/
|
||||
|
||||
#ifndef PARSEMANAGER_H
|
||||
#define PARSEMANAGER_H
|
||||
|
||||
#include "cplusplus/CppDocument.h"
|
||||
#include "ASTfwd.h"
|
||||
#include "FullySpecifiedType.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
#include <QFuture>
|
||||
#include <QStringList>
|
||||
#include <QFile>
|
||||
|
||||
namespace CppTools{
|
||||
namespace Internal{
|
||||
class CppPreprocessor;
|
||||
}
|
||||
}
|
||||
|
||||
namespace CPlusPlus {
|
||||
class CLASSLISTITEM
|
||||
{
|
||||
public:
|
||||
CPlusPlus::TranslationUnit* trlUnit;
|
||||
ClassSpecifierAST* classspec;
|
||||
};
|
||||
class CLASSTREE
|
||||
{
|
||||
public:
|
||||
CLASSLISTITEM* highestlevelclass;
|
||||
QList<CLASSLISTITEM*> classlist;
|
||||
};
|
||||
class FUNCTIONITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
CPlusPlus::TranslationUnit* trlUnit;
|
||||
ClassSpecifierAST* classAst;
|
||||
QStringList classWichIsNotFound;
|
||||
CPlusPlus::Function* function;
|
||||
|
||||
bool isEqualTo(FUNCTIONITEM* cpfct, bool ignoreName = true);
|
||||
|
||||
FUNCTIONITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
trlUnit = 0;
|
||||
classAst = 0;
|
||||
function = 0;
|
||||
}
|
||||
};
|
||||
class PROPERTYITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
QStringList classWichIsNotFound;
|
||||
QtPropertyDeclarationAST *ast;
|
||||
CPlusPlus::TranslationUnit* trlUnit;
|
||||
FullySpecifiedType type;
|
||||
ExpressionAST *readAst;
|
||||
FUNCTIONITEM *readFct;
|
||||
ExpressionAST *writeAst;
|
||||
FUNCTIONITEM *writeFct;
|
||||
ExpressionAST *resetAst;
|
||||
FUNCTIONITEM *resetFct;
|
||||
ExpressionAST *notifyAst;
|
||||
FUNCTIONITEM *notifyFct;
|
||||
bool foundalldefinedfct;
|
||||
|
||||
bool isEqualTo(PROPERTYITEM* cpppt);
|
||||
PROPERTYITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
ast = 0;
|
||||
trlUnit = 0;
|
||||
readAst = 0;
|
||||
readFct = 0;
|
||||
writeAst = 0;
|
||||
writeFct = 0;
|
||||
resetAst = 0;
|
||||
resetFct = 0;
|
||||
notifyAst = 0;
|
||||
notifyFct = 0;
|
||||
foundalldefinedfct = false;
|
||||
}
|
||||
|
||||
static PROPERTYITEM *create(QtPropertyDeclarationAST *ast, const CLASSLISTITEM *clazz);
|
||||
};
|
||||
|
||||
class QENUMITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
QStringList classWichIsNotFound;
|
||||
QString name;
|
||||
//an item in this list will be shown like:
|
||||
//EnumName.EnumItemName.Value
|
||||
//ConnectionState.disconnected.0
|
||||
QStringList values;
|
||||
bool foundallenums;
|
||||
|
||||
bool isEqualTo(QENUMITEM *cpenum);
|
||||
QENUMITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
values.clear();
|
||||
foundallenums = true;
|
||||
}
|
||||
};
|
||||
|
||||
class ENUMITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
CPlusPlus::TranslationUnit* trlUnit;
|
||||
QStringList classWichIsNotFound;
|
||||
EnumSpecifierAST* ast;
|
||||
|
||||
ENUMITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
trlUnit = 0;
|
||||
ast = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class QFLAGITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
const Name *name;
|
||||
QStringList classWichIsNotFound;
|
||||
QStringList enumvalues;
|
||||
bool foundallenums;
|
||||
|
||||
bool isEqualTo(QFLAGITEM *cpflag);
|
||||
QFLAGITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
enumvalues.clear();
|
||||
foundallenums = true;
|
||||
}
|
||||
};
|
||||
|
||||
class QDECLAREFLAGSITEM
|
||||
{
|
||||
public:
|
||||
const CLASSLISTITEM* highestlevelclass;
|
||||
CPlusPlus::TranslationUnit* trlUnit;
|
||||
QStringList classWichIsNotFound;
|
||||
QtFlagsDeclarationAST* ast;
|
||||
|
||||
QDECLAREFLAGSITEM()
|
||||
{
|
||||
highestlevelclass = 0;
|
||||
trlUnit = 0;
|
||||
ast = 0;
|
||||
}
|
||||
};
|
||||
|
||||
static QFile* m_resultFile = 0;
|
||||
class ParseManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ParseManager();
|
||||
virtual ~ParseManager();
|
||||
void setIncludePath(const QStringList &includePath);
|
||||
void parse(const QStringList &sourceFiles);
|
||||
bool checkAllMetadatas(ParseManager* pInterfaceParserManager, QString resultfile);
|
||||
CppTools::Internal::CppPreprocessor *getPreProcessor() { return pCppPreprocessor; }
|
||||
QList<CLASSTREE*> CreateClassLists(bool isInterfaceHeader);
|
||||
QStringList getErrorMsg() { return m_errormsgs; }
|
||||
|
||||
private:
|
||||
void parse(CppTools::Internal::CppPreprocessor *preproc, const QStringList &files);
|
||||
void Trace(QString value);
|
||||
inline QString getTraceFuntionString(const FUNCTIONITEM* fctitem, const QString& classname);
|
||||
void getBaseClasses(const CLASSLISTITEM* pclass
|
||||
, QList<CLASSLISTITEM*> &baseclasslist
|
||||
, const QList<CLASSLISTITEM*> &allclasslist
|
||||
, int level
|
||||
, bool isInterfaceHeader);
|
||||
void getElements(QList<FUNCTIONITEM*> &functionlist
|
||||
, QList<PROPERTYITEM*> &propertylist
|
||||
, QList<QENUMITEM*> &qenumlist
|
||||
, QList<ENUMITEM*> &enumlist
|
||||
, QList<QFLAGITEM*> &qflaglist
|
||||
, QList<QDECLAREFLAGSITEM*> &qdeclareflaglist
|
||||
, const QList<CLASSLISTITEM*> classitems
|
||||
, const CLASSLISTITEM* highestlevelclass);
|
||||
|
||||
//<--- for Metadata functions checks
|
||||
QList<FUNCTIONITEM*> checkMetadataFunctions(const QList<QList<FUNCTIONITEM*> > &classfctlist, const QList<QList<FUNCTIONITEM*> > &iclassfctlist);
|
||||
bool isMetaObjFunction(FUNCTIONITEM* fct);
|
||||
QList<FUNCTIONITEM*> containsAllMetadataFunction(const QList<FUNCTIONITEM*> &classfctlist, const QList<FUNCTIONITEM*> &iclassfctlist);
|
||||
QStringList getErrorMessage(FUNCTIONITEM* fct);
|
||||
//--->
|
||||
|
||||
//<--- for Q_PROPERTY functions checks
|
||||
QList<PROPERTYITEM*> checkMetadataProperties(const QList<QList<PROPERTYITEM*> > &classproplist
|
||||
, const QList<QList<FUNCTIONITEM*> > &classfctlist
|
||||
, const QList<QList<PROPERTYITEM*> > &iclassproplist
|
||||
, const QList<QList<FUNCTIONITEM*> > &iclassfctlist);
|
||||
void assignPropertyFunctions(PROPERTYITEM* prop, const QList<QList<FUNCTIONITEM*> > &fctlookuplist);
|
||||
QList<PROPERTYITEM*> containsAllPropertyFunction(const QList<PROPERTYITEM*> &classproplist, const QList<PROPERTYITEM*> &iclassproplist);
|
||||
QStringList getErrorMessage(PROPERTYITEM* ppt);
|
||||
//--->
|
||||
|
||||
//<--- for Q_ENUMS checks
|
||||
QList<QENUMITEM*> checkMetadataEnums(const QList<QList<QENUMITEM*> > &classqenumlist
|
||||
, const QList<QList<ENUMITEM*> > &classenumlist
|
||||
, const QList<QList<QENUMITEM*> > &iclassqenumlist
|
||||
, const QList<QList<ENUMITEM*> > &iclassenumlist);
|
||||
QStringList getEnumValueStringList(ENUMITEM *penum, QString mappedenumname = "");
|
||||
void assignEnumValues(QENUMITEM* qenum, const QList<QList<ENUMITEM*> > &enumlookuplist);
|
||||
QList<QENUMITEM*> containsAllEnums(const QList<QENUMITEM*> &classqenumlist, const QList<QENUMITEM*> &iclassqenumlist);
|
||||
QStringList getErrorMessage(QENUMITEM* qenum);
|
||||
//--->
|
||||
|
||||
//<--- for QFlags checks --->
|
||||
QList<QFLAGITEM*> checkMetadataFlags(const QList<QList<QFLAGITEM*> > &classqflaglist
|
||||
, const QList<QList<QDECLAREFLAGSITEM*> > &classqdeclareflaglist
|
||||
, const QList<QList<ENUMITEM*> > &classenumlist
|
||||
, const QList<QList<QFLAGITEM*> > &iclassqflaglist
|
||||
, const QList<QList<QDECLAREFLAGSITEM*> > &iclassqdeclareflaglist
|
||||
, const QList<QList<ENUMITEM*> > &iclassenumlist);
|
||||
void assignFlagValues(QFLAGITEM* qflags, const QList<QList<QDECLAREFLAGSITEM*> > &qdeclareflagslookuplist, const QList<QList<ENUMITEM*> > &enumlookuplist);
|
||||
QList<QFLAGITEM*> containsAllFlags(const QList<QFLAGITEM*> &classqflaglist, const QList<QFLAGITEM*> &iclassqflaglist);
|
||||
QStringList getErrorMessage(QFLAGITEM* pfg);
|
||||
//--->
|
||||
|
||||
private:
|
||||
// cache
|
||||
QStringList m_includePaths;
|
||||
QStringList m_frameworkPaths;
|
||||
QByteArray m_definedMacros;
|
||||
CppTools::Internal::CppPreprocessor* pCppPreprocessor;
|
||||
QString m_strHeaderFile;
|
||||
QStringList m_errormsgs;
|
||||
};
|
||||
}
|
||||
#endif // PARSEMANAGER_H
|
||||
@@ -1,50 +0,0 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: http://www.qt-project.org/
|
||||
**
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** This file may be used under the terms of the GNU Lesser General Public
|
||||
** License version 2.1 as published by the Free Software Foundation and
|
||||
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
||||
** Please review the following information to ensure the GNU Lesser General
|
||||
** Public License version 2.1 requirements will be met:
|
||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** In addition, as a special exception, Nokia gives you certain additional
|
||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
**
|
||||
** Other Usage
|
||||
**
|
||||
** Alternatively, this file may be used in accordance with the terms and
|
||||
** conditions contained in a signed written agreement between you and Nokia.
|
||||
**
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include <QtTest>
|
||||
#include "ichecklib.h"
|
||||
#include <QDebug>
|
||||
|
||||
class tst_icheckbuild : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
private slots:
|
||||
void doTests();
|
||||
};
|
||||
|
||||
void tst_icheckbuild::doTests()
|
||||
{
|
||||
qDebug() << "icheck build was successful";
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_icheckbuild)
|
||||
|
||||
#include "tst_icheckbuild.moc"
|
||||
Reference in New Issue
Block a user