project
ibuildsystemmanager.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef IBUILDSYSTEMMANAGER_H
00023 #define IBUILDSYSTEMMANAGER_H
00024
00025 #include "iprojectfilemanager.h"
00026 #include "../projectexport.h"
00027
00028 namespace KDevelop
00029 {
00030
00031 class IProjectBuilder;
00032 typedef QList<ProjectFileItem*> FileItemList;
00033 class ProjectTargetItem;
00038 class KDEVPLATFORMPROJECT_EXPORT IBuildSystemManager : public IProjectFileManager
00039 {
00040 public:
00041
00042 virtual ~IBuildSystemManager();
00043
00044 enum BuildFeature
00045 {
00046 Includes ,
00047 Defines
00048 };
00049 Q_DECLARE_FLAGS( BuildFeatures, BuildFeature )
00050
00051
00056 virtual IProjectBuilder* builder(ProjectFolderItem*) const = 0;
00057
00061 virtual KUrl::List includeDirectories(ProjectBaseItem*) const = 0;
00062
00067 virtual QHash<QString,QString> defines(ProjectBaseItem*) const = 0;
00068
00073 virtual QHash<QString,QString> environment(ProjectBaseItem*) const = 0;
00074
00081 virtual ProjectTargetItem* createTarget(const QString& target, ProjectFolderItem *parent) = 0;
00082
00089 virtual bool removeTarget(ProjectTargetItem *target) = 0;
00090
00100 virtual QList<ProjectTargetItem*> targets(ProjectFolderItem*) const = 0;
00101
00108 virtual bool addFileToTarget(ProjectFileItem *file, ProjectTargetItem *parent) = 0;
00109
00117 virtual bool removeFileFromTarget(ProjectFileItem *file, ProjectTargetItem *parent) = 0;
00118
00122 virtual KUrl buildDirectory(ProjectBaseItem*) const = 0;
00123 };
00124
00125 }
00126
00127 Q_DECLARE_OPERATORS_FOR_FLAGS( KDevelop::IBuildSystemManager::BuildFeatures )
00128
00129 KDEV_DECLARE_EXTENSION_INTERFACE_NS( KDevelop, IBuildSystemManager, "org.kdevelop.IBuildSystemManager" )
00130 Q_DECLARE_INTERFACE( KDevelop::IBuildSystemManager, "org.kdevelop.IBuildSystemManager" )
00131
00132 #endif
00133
00134