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.
75 lines
2.4 KiB
75 lines
2.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Interface for makefiles to build differently depending on where they are run from |
|
// |
|
//===========================================================================// |
|
|
|
#ifndef IDMEMAKEFILEUTILS_H |
|
#define IDMEMAKEFILEUTILS_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "appframework/IAppSystem.h" |
|
#include "vstdlib/iprocessutils.h" |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Forward declarations |
|
//----------------------------------------------------------------------------- |
|
class CDmElement; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Interface version |
|
//----------------------------------------------------------------------------- |
|
#define DMEMAKEFILE_UTILS_INTERFACE_VERSION "VDmeMakeFileUtils001" |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Interface for makefiles to build differently depending on where they are run from |
|
//----------------------------------------------------------------------------- |
|
enum CompilationState_t |
|
{ |
|
COMPILATION_SUCCESSFUL = 0, |
|
COMPILATION_NOT_COMPLETE, |
|
COMPILATION_FAILED, |
|
}; |
|
|
|
abstract_class IDmeMakefileUtils : public IAppSystem |
|
{ |
|
public: |
|
// Methods related to compilation |
|
virtual void PerformCompile( CDmElement *pElement, bool bBuildAllDependencies ) = 0; |
|
|
|
// Are we in the middle of compiling something? |
|
virtual bool IsCurrentlyCompiling( ) = 0; |
|
|
|
// Returns the size of the buffer to pass into UpdateCompilation() |
|
virtual int GetCompileOutputSize() = 0; |
|
|
|
// Updates the compilation |
|
virtual CompilationState_t UpdateCompilation( char *pOutputBuf, int nBufLen ) = 0; |
|
|
|
// Aborts the compilation |
|
virtual void AbortCurrentCompilation() = 0; |
|
|
|
// Opens an external editor for this element |
|
virtual void PerformOpenEditor( CDmElement *pElement ) = 0; |
|
|
|
// Returns the exit code of the failed compilation (if COMPILATION_FAILED occurred) |
|
virtual int GetExitCode() = 0; |
|
|
|
// Somewhere in here, we need a method of populating choice lists |
|
// for things like choosing vstInfoNodes to export for DCC makefiles |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Default implementation |
|
//----------------------------------------------------------------------------- |
|
IDmeMakefileUtils* GetDefaultDmeMakefileUtils(); |
|
|
|
|
|
#endif // IDMEMAKEFILEUTILS_H
|
|
|