You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdevelop/buildtools/autotools/autoprojectpart.h

157 lines
5.2 KiB

/***************************************************************************
* 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 <tqdict.h>
#include <tqguardedptr.h>
#include <tqmap.h>
#include <tqdatetime.h>
#include <tqdir.h>
#include <kdevgenericfactory.h>
#include "kdevbuildtool.h"
class TQDomElement;
class TQStringList;
class KDialogBase;
class AutoProjectWidget;
class TDESelectAction;
class TargetItem;
class ConfigWidgetProxy;
class AutoProjectPart : public KDevBuildTool
{
Q_OBJECT
public:
AutoProjectPart( TQObject *parent, const char *name, const TQStringList &args );
virtual ~AutoProjectPart();
/**
* Implementation of the KDevProject interface.
*/
virtual TQString projectDirectory() const;
virtual TQString projectName() const;
virtual DomUtil::PairList runEnvironmentVars() const;
virtual TQString runDirectory() const;
virtual TQString mainProgram() const;
virtual TQString debugArguments() const;
virtual TQString runArguments() const;
virtual TQString environString() const;
virtual TQString activeDirectory() const;
virtual TQStringList allFiles() const;
virtual void addFile( const TQString &fileName );
virtual void addFiles ( const TQStringList& fileList );
virtual void removeFile( const TQString &fileName );
virtual void removeFiles ( const TQStringList& fileList );
virtual TQString buildDirectory() const;
virtual Options options() const;
/**
* Implementation of the KDevPlugin interface.
*/
virtual void restorePartialProjectSession ( const TQDomElement* el );
virtual void savePartialProjectSession ( TQDomElement* el );
/**
* automake specific methods.
*/
TQStringList allBuildConfigs() const;
TQString currentBuildConfig() const;
TQString topsourceDirectory() const;
void startMakeCommand( const TQString &dir, const TQString &target, bool withKdesu = false );
void startSimpleMakeCommand( const TQString &dir, const TQString &command, bool withKdesu = false );
void buildTarget( TQString relpath, TargetItem* titem );
void executeTarget( const TQDir& dir, const TargetItem* titem );
void needMakefileCvs();
bool isDirty();
bool isKDE() const;
TQStringList distFiles() const;
TQString getAutoConfFile(const TQString& dir);
protected:
/**
* Reimplemented from KDevProject. These methods are only
* for use by the application core.
*/
virtual void openProject( const TQString &dirName, const TQString &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 slotUpdateAdminDirectory();
void slotExecute();
void slotExecute2();
void slotExecuteTargetAfterBuild( const TQString& command );
void slotNotExecuteTargetAfterBuildFailed( const TQString& command );
void slotBuildConfigChanged( const TQString &config );
void slotBuildConfigAboutToShow();
void slotCommandFinished( const TQString& command );
void slotCommandFailed( const TQString& command );
//void slotImportExisting();
void insertConfigWidget( const KDialogBase* dlg, TQWidget * page, unsigned int );
private:
TQGuardedPtr<AutoProjectWidget> m_widget;
TQString m_projectName;
TQString m_projectPath;
TDESelectAction *buildConfigAction;
TQString makeEnvironment() const;
void setWantautotools();
TQString makefileCvsCommand() const;
TQString makefileCopySystemLibtoolCommand() const;
TQString configureCommand() const;
TQString updateAdminDirectoryCommand() const;
TQMap<TQString, TQDateTime> m_timestamp;
bool m_executeAfterBuild;
TQString m_buildCommand;
bool m_needMakefileCvs;
bool m_lastCompilationFailed;
bool m_isKDE;
TQPair<TQDir, TargetItem*> m_executeTargetAfterBuild;
TQString m_runProg;
ConfigWidgetProxy * _configProxy;
// Enble AutoProjectWidget to emit our signals
friend class AutoProjectWidget;
friend class AddSubprojectDialog;
friend class FileItem;
// For make commands queuing
TQString constructMakeCommandLine( const TQString &dir, const TQString &target ) const;
bool queueInternalLibDependenciesBuild( TargetItem* titem, TQStringList& list );
};
typedef KDevGenericFactory<AutoProjectPart> AutoProjectFactory;
#endif