|
|
//===================== Copyright (c) Valve Corporation. All Rights Reserved. ======================
//
//
//==================================================================================================
#ifndef GENERATORDEFINITION_H
#define GENERATORDEFINITION_H
#ifdef _WIN32
#pragma once
#endif
struct PropertyName_t { int m_nPropertyId; const char *m_pPrefixName; const char *m_pPropertyName; };
enum configKeyword_e { KEYWORD_UNKNOWN = -1, KEYWORD_GENERAL, KEYWORD_DEBUGGING, KEYWORD_COMPILER, KEYWORD_PS3_SNCCOMPILER, KEYWORD_PS3_GCCCOMPILER, KEYWORD_LIBRARIAN, KEYWORD_LINKER, KEYWORD_PS3_SNCLINKER, KEYWORD_PS3_GCCLINKER, KEYWORD_MANIFEST, KEYWORD_XMLDOCGEN, KEYWORD_BROWSEINFO, KEYWORD_RESOURCES, KEYWORD_PREBUILDEVENT, KEYWORD_PRELINKEVENT, KEYWORD_POSTBUILDEVENT, KEYWORD_CUSTOMBUILDSTEP, KEYWORD_XBOXIMAGE, KEYWORD_XBOXDEPLOYMENT, KEYWORD_MAX, };
enum PropertyType_e { PT_UNKNOWN = 0, PT_BOOLEAN, PT_STRING, PT_INTEGER, PT_LIST, PT_IGNORE, PT_DEPRECATED, };
struct PropertyOrdinal_t { CUtlString m_ParseString; CUtlString m_ValueString; };
struct ToolProperty_t { ToolProperty_t() { m_nPropertyId = -1; m_nType = PT_UNKNOWN; m_bFixSlashes = false; m_bEmitAsGlobalProperty = false; m_bInvertOutput = false; m_bAppendSlash = false; m_bPreferSemicolonNoComma = false; m_bPreferSemicolonNoSpace = false; }
CUtlString m_ParseString; CUtlString m_AliasString; CUtlString m_LegacyString; CUtlString m_OutputString; CUtlVector< PropertyOrdinal_t > m_Ordinals;
int m_nPropertyId; PropertyType_e m_nType; bool m_bFixSlashes; bool m_bEmitAsGlobalProperty; bool m_bInvertOutput; bool m_bAppendSlash; bool m_bPreferSemicolonNoComma; bool m_bPreferSemicolonNoSpace; };
struct GeneratorTool_t { GeneratorTool_t() { m_nKeyword = KEYWORD_UNKNOWN; }
CUtlString m_ParseString; CUtlVector< ToolProperty_t > m_Properties; configKeyword_e m_nKeyword; };
class CGeneratorDefinition { public: CGeneratorDefinition();
void LoadDefinition( const char *pDefinitionName, PropertyName_t *pPropertyNames ); ToolProperty_t *GetProperty( configKeyword_e keyword, const char *pPropertyName );
const char *GetScriptName( CRC32_t *pCRC );
private: void AssignIdentifiers(); void IterateToolKey( KeyValues *pToolKV ); void IteratePropertyKey( GeneratorTool_t *pTool, KeyValues *pPropertyKV ); void IterateAttributesKey( ToolProperty_t *pProperty, KeyValues *pAttributesKV ); void Clear();
PropertyName_t *m_pPropertyNames; CUtlString m_ScriptName; CUtlString m_NameString; CUtlString m_VersionString; CUtlVector< GeneratorTool_t > m_Tools; CRC32_t m_ScriptCRC; };
#endif // GENERATORDEFINITION_H
|