1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/* KDevelop QMake Support
*
* Copyright 2006 Andreas Pakulat <apaku@gmx.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef QMAKEPROJECTFILE_H
#define QMAKEPROJECTFILE_H
#include "qmakefile.h"
class QMakeMkSpecs;
template <typename T> class QList;
class QMakeMkSpecs;
class QMakeCache;
namespace KDevelop {
class IProject;
}
class QMakeProjectFile : public QMakeFile
{
public:
typedef QPair< QString, QString > DefinePair;
static const QStringList FileVariables;
explicit QMakeProjectFile( const QString& projectfile );
~QMakeProjectFile() override;
bool read() override;
QStringList subProjects() const;
bool hasSubProject(const QString& file) const;
QStringList files() const;
QStringList filesForTarget( const QString& ) const;
QStringList includeDirectories() const;
QStringList frameworkDirectories() const;
QStringList extraArguments() const;
QStringList targets() const;
QString getTemplate() const;
void setMkSpecs( QMakeMkSpecs* mkspecs );
QMakeMkSpecs* mkSpecs() const;
void setQMakeCache( QMakeCache* cache );
QMakeCache* qmakeCache() const;
QStringList resolveVariable(const QString& variable, VariableInfo::VariableType type) const override;
QList< DefinePair > defines() const;
/// current pwd, e.g. absoluteDir even for included files
virtual QString pwd() const;
/// path to build dir for the current .pro file
virtual QString outPwd() const;
/// path to dir of current .pro file
virtual QString proFilePwd() const;
/// path to current .pro file
virtual QString proFile() const;
private:
void addPathsForVariable(const QString& variable, QStringList* list, const QString& base = {}) const;
QMakeMkSpecs* m_mkspecs;
QMakeCache* m_cache;
static QHash<QString, QHash<QString, QString> > m_qmakeQueryCache;
QString m_qtIncludeDir;
QString m_qtVersion;
// On OS X, QT_INSTALL_LIBS is typically a framework directory and should thus be added to the framework search path
QString m_qtLibDir;
};
#endif
|