diff options
Diffstat (limited to 'buildtools/autotools/autoprojectpart.h')
-rw-r--r-- | buildtools/autotools/autoprojectpart.h | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/buildtools/autotools/autoprojectpart.h b/buildtools/autotools/autoprojectpart.h new file mode 100644 index 00000000..d0862cc3 --- /dev/null +++ b/buildtools/autotools/autoprojectpart.h @@ -0,0 +1,153 @@ +/*************************************************************************** +* Copyright (C) 2001-2002 by Bernd Gehrmann * +* bernd@kdevelop.org * +* * +* Copyright (C) 2002 by Victor R�er * +* victor_roeder@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. * +* * +***************************************************************************/ + +#ifndef _AUTOPROJECTPART_H_ +#define _AUTOPROJECTPART_H_ + +#include <qdict.h> +#include <qguardedptr.h> +#include <qmap.h> +#include <qdatetime.h> +#include <qdir.h> +#include <kdevgenericfactory.h> +#include "kdevbuildtool.h" + +class QDomElement; +class QStringList; +class KDialogBase; +class AutoProjectWidget; +class KSelectAction; +class TargetItem; +class ConfigWidgetProxy; + +class AutoProjectPart : public KDevBuildTool +{ + Q_OBJECT + +public: + AutoProjectPart( QObject *parent, const char *name, const QStringList &args ); + virtual ~AutoProjectPart(); + + /** + * Implementation of the KDevProject interface. + */ + virtual QString projectDirectory() const; + virtual QString projectName() const; + virtual DomUtil::PairList runEnvironmentVars() const; + virtual QString runDirectory() const; + virtual QString mainProgram() const; + virtual QString debugArguments() const; + virtual QString runArguments() const; + virtual QString environString() const; + virtual QString activeDirectory() const; + virtual QStringList allFiles() const; + virtual void addFile( const QString &fileName ); + virtual void addFiles ( const QStringList& fileList ); + virtual void removeFile( const QString &fileName ); + virtual void removeFiles ( const QStringList& fileList ); + virtual QString buildDirectory() const; + virtual Options options() const; + + /** + * Implementation of the KDevPlugin interface. + */ + virtual void restorePartialProjectSession ( const QDomElement* el ); + virtual void savePartialProjectSession ( QDomElement* el ); + + /** + * automake specific methods. + */ + QStringList allBuildConfigs() const; + QString currentBuildConfig() const; + QString topsourceDirectory() const; + void startMakeCommand( const QString &dir, const QString &target, bool withKdesu = false ); + void startSimpleMakeCommand( const QString &dir, const QString &command, bool withKdesu = false ); + void buildTarget( QString relpath, TargetItem* titem ); + void executeTarget( const QDir& dir, const TargetItem* titem ); + + void needMakefileCvs(); + bool isDirty(); + bool isKDE() const; + QStringList distFiles() const; + QString getAutoConfFile(const QString& dir); + +protected: + /** + * Reimplemented from KDevProject. These methods are only + * for use by the application core. + */ + virtual void openProject( const QString &dirName, const QString &projectName ); + virtual void closeProject(); + +private slots: + // void projectConfigWidget(KDialogBase *dlg); + void slotAddTranslation(); + void slotBuild(); + void slotBuildActiveTarget(); + void slotCompileFile(); + void slotClean(); + void slotDistClean(); + void slotInstall(); + void slotInstallWithKdesu(); + void slotMakefilecvs(); + void slotMakeMessages(); + void slotConfigure(); + void slotExecute(); + void slotExecute2(); + void slotExecuteTargetAfterBuild( const QString& command ); + void slotNotExecuteTargetAfterBuildFailed( const QString& command ); + void slotBuildConfigChanged( const QString &config ); + void slotBuildConfigAboutToShow(); + void slotCommandFinished( const QString& command ); + void slotCommandFailed( const QString& command ); + //void slotImportExisting(); + void insertConfigWidget( const KDialogBase* dlg, QWidget * page, unsigned int ); + + +private: + QGuardedPtr<AutoProjectWidget> m_widget; + QString m_projectName; + QString m_projectPath; + KSelectAction *buildConfigAction; + + QString makeEnvironment() const; + void setWantautotools(); + QString makefileCvsCommand() const; + QString configureCommand() const; + + QMap<QString, QDateTime> m_timestamp; + bool m_executeAfterBuild; + QString m_buildCommand; + bool m_needMakefileCvs; + bool m_lastCompilationFailed; + bool m_isKDE; + QPair<QDir, TargetItem*> m_executeTargetAfterBuild; + QString m_runProg; + + ConfigWidgetProxy * _configProxy; + + // Enble AutoProjectWidget to emit our signals + friend class AutoProjectWidget; + friend class AddSubprojectDialog; + friend class FileItem; + + // For make commands queuing + QString constructMakeCommandLine( const QString &dir, const QString &target ) const; + bool queueInternalLibDependenciesBuild( TargetItem* titem, QStringList& list ); +}; + +typedef KDevGenericFactory<AutoProjectPart> AutoProjectFactory; + +#endif +// kate: indent-mode csands; tab-width 4; |