improvements to the fpc
This commit is contained in:
@@ -34,8 +34,8 @@ enum ECVersion
|
||||
// Target C++ version
|
||||
enum ECPPVersion
|
||||
{
|
||||
CPPVERSION_98 = 1,
|
||||
CPPVERSION_11 = 0,
|
||||
CPPVERSION_98 = 0,
|
||||
CPPVERSION_11 = 1,
|
||||
CPPVERSION_14 = 2,
|
||||
CPPVERSION_17 = 3,
|
||||
CPPVERSION_20 = 4,
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
#define GNU_C_COMPILER_INTERFACE_NAME "GNU" C_COMPILER_INTERFACE_NAME
|
||||
#define MSVC_C_COMPILER_INTERFACE_NAME "MSVC" C_COMPILER_INTERFACE_NAME
|
||||
|
||||
abstract_class ICCompiler
|
||||
class ICCompiler
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -102,24 +102,33 @@ public:
|
||||
// which can be linked into executable or library.
|
||||
virtual LinkProject_t Compile( CProject_t *pProject );
|
||||
|
||||
|
||||
virtual void GenerateLinterData() = 0;
|
||||
protected:
|
||||
// Compiler internals
|
||||
|
||||
// Returns file name of the
|
||||
CUtlString GetOutputObjectName( CUtlString szFileName );
|
||||
CUtlString GetOutputObjectName( CProject_t *pProject, unsigned int hash, CUtlString szFileName );
|
||||
|
||||
virtual CUtlVector<CUtlString> BuildCommandLine( CProject_t *pProject );
|
||||
virtual CUtlVector<CUtlString> BuildCommandLine( CProject_t *pProject, const char *szFileName, const char *szOutputFileName );
|
||||
|
||||
// Returns executable which should the OS run
|
||||
virtual CUtlString GetCompilerExecutable( CProject_t *pProject ) = 0;
|
||||
virtual const char *GetCompilerExecutable( CProject_t *pProject ) = 0;
|
||||
|
||||
// returns object file format, eg .obj or .o
|
||||
virtual const char *GetOutputObjectFormat() = 0;
|
||||
virtual bool IncludeDirectory( CUtlVector<CUtlString> &cmd ) = 0;
|
||||
virtual bool IncludeFile( CUtlVector<CUtlString> &cmd ) = 0;
|
||||
virtual void Macro( const char *szName ) = 0;
|
||||
virtual void Macro( const char *szName, const char *szValue ) = 0;
|
||||
|
||||
virtual void IncludeDirectory( CUtlVector<CUtlString> &cmd, const char *szName ) = 0;
|
||||
virtual void IncludeFile( CUtlVector<CUtlString> &cmd, const char *szName ) = 0;
|
||||
virtual void Macro( CUtlVector<CUtlString> &cmd, const char *szName ) = 0;
|
||||
virtual void Macro( CUtlVector<CUtlString> &cmd, const char *szName, const char *szValue ) = 0;
|
||||
|
||||
virtual void SetTarget( CUtlVector<CUtlString> &cmd, CProject_t *pProject ) = 0;
|
||||
virtual void CompileFile( CUtlVector<CUtlString> &cmd, const char *szName ) = 0;
|
||||
virtual void SetOutputFile( CUtlVector<CUtlString> &cmd, const char *szName ) = 0;
|
||||
|
||||
virtual void EnableDebugSymbols( CUtlVector<CUtlString> &cmd ) = 0;
|
||||
virtual void EnablePIE( CUtlVector<CUtlString> &cmd ) = 0;
|
||||
virtual void EnablePIC( CUtlVector<CUtlString> &cmd ) = 0;
|
||||
};
|
||||
|
||||
extern ICCompiler *ccompiler;
|
||||
|
||||
Reference in New Issue
Block a user