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.
64 lines
1.6 KiB
64 lines
1.6 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
#ifndef MAKEFILECREATOR_H
|
||
|
#define MAKEFILECREATOR_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#include "utlvector.h"
|
||
|
#include "utlsymbol.h"
|
||
|
#include "utldict.h"
|
||
|
#include "utlmap.h"
|
||
|
#include "vcprojconvert.h"
|
||
|
#include "filesystem.h"
|
||
|
|
||
|
class CMakefileCreator
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CMakefileCreator();
|
||
|
~CMakefileCreator();
|
||
|
|
||
|
void CreateMakefiles( CVCProjConvert & proj );
|
||
|
|
||
|
private:
|
||
|
void CleanupFileName( char *name );
|
||
|
void OutputDirs( FileHandle_t f );
|
||
|
void OutputBuildTarget( FileHandle_t f );
|
||
|
void OutputObjLists( CVCProjConvert::CConfiguration & config, FileHandle_t f );
|
||
|
void OutputIncludes( CVCProjConvert::CConfiguration & config, FileHandle_t f );
|
||
|
void OutputMainBuilder( FileHandle_t f );
|
||
|
|
||
|
void CreateBaseDirs( CVCProjConvert::CConfiguration & config );
|
||
|
void CreateMakefileName( const char *projectName, CVCProjConvert::CConfiguration & config );
|
||
|
void CreateDirectoryFriendlyName( const char *dirName, char *friendlyDirName, int friendlyDirNameSize );
|
||
|
void CreateObjDirectoryFriendlyName ( char *name );
|
||
|
void FileWrite( FileHandle_t f, PRINTF_FORMAT_STRING const char *fmt, ... );
|
||
|
|
||
|
|
||
|
CUtlDict<CUtlSymbol, int> m_BaseDirs;
|
||
|
CUtlMap<int, int> m_FileToBaseDirMapping;
|
||
|
|
||
|
struct OutputDirMapping_t
|
||
|
{
|
||
|
CUtlSymbol m_SrcDir;
|
||
|
CUtlSymbol m_ObjDir;
|
||
|
CUtlSymbol m_ObjName;
|
||
|
CUtlSymbol m_ObjOutputDir;
|
||
|
int m_iBaseDirIndex;
|
||
|
};
|
||
|
|
||
|
CUtlVector<struct OutputDirMapping_t> m_BuildDirectories;
|
||
|
CUtlSymbol m_MakefileName;
|
||
|
CUtlSymbol m_ProjName;
|
||
|
CUtlSymbol m_BaseDir;
|
||
|
};
|
||
|
|
||
|
#endif // MAKEFILECREATOR_H
|