|
//====================================================================
// Although great care has gone into developing this software,
// it is provided without any guarantee of reliability, accuracy
// of information, or correctness of operation. I am not responsible
// for any damages that may occur as a result of using this software.
// Use this software entirely at your own risk.
// Copyright 2003, Chris Richardson
//
// Description: Classes used to read VC6 projects and workspaces.
//
//====================================================================
#if !defined( _VC_6_OBJECTS_H_DEFINED_ )
#define _VC_6_OBJECTS_H_DEFINED_
#include "DSObjects.h"
//////////////////////////////////////////////////////////////////////
// CVC6Settings - Stores the compile settings that we are interested in,
// for each configuration, and can read version 6 cmd line.
//////////////////////////////////////////////////////////////////////
class CVC6Settings : public CDSSettings
{
public:
CVC6Settings();
virtual ~CVC6Settings();
virtual void ParseSettings( CDSSettings * p_roFileSettings,
CDSParsedSettings & p_roSettings ) const;
void ParseCPPCommandLine( TCHAR * p_pszLine );
TCHAR * ExtractOptionAndAppend( CDSSettingArray & p_roSettings,
TCHAR * p_pszOpt,
CDSSetting::DSSettingType p_eType );
protected:
void ProcessAddSetting( const CDSSetting * p_poSetting,
CStdStringArray & p_roStdIncludes,
CStdStringArray & p_roIncludes,
CStdStringArray & p_roDefines,
CStdStringArray & p_roNewIncludes,
CStdStringArray & p_roNewDefines ) const;
};
//////////////////////////////////////////////////////////////////////
// CDSConfigurationHolder - Stores a map of configuration names to
// compiler settings objects, and can
// read version 6 configuration settings.
//////////////////////////////////////////////////////////////////////
class CVC6ConfigurationHolder : public CDSConfigurationHolder
{
public:
CVC6ConfigurationHolder();
virtual ~CVC6ConfigurationHolder();
ParseStatus ParseIfElseBlock( CStream & p_roStream );
};
//////////////////////////////////////////////////////////////////////
// CVC6File - Represents one source file.
// Stores the compiler settings for per-file configuration changes,
// and can read version 6 "# Begin Source" sections.
//////////////////////////////////////////////////////////////////////
class CVC6File : public CDSFile
{
public:
CVC6File();
virtual ~CVC6File();
ParseStatus ReadProject( const TCHAR * p_pszProjectDir,
CStream & p_roStream );
};
//////////////////////////////////////////////////////////////////////
// CVC6Project - Represents one project.
// Stores the list of files and configurations,
// and can read version 6 project files.
//////////////////////////////////////////////////////////////////////
class CVC6Project : public CDSProject
{
public:
CVC6Project();
virtual ~CVC6Project();
virtual ParseStatus ReadProject( const TCHAR * p_pszPath );
};
//////////////////////////////////////////////////////////////////////
// CVC6Workspace - Represents one workspace.
// Stores the list of projects,
// and can read version 6 workspaces.
//////////////////////////////////////////////////////////////////////
class CVC6Workspace : public CDSWorkspace
{
public:
CVC6Workspace();
virtual ~CVC6Workspace();
virtual ParseStatus ReadOneProject( const TCHAR * p_pszProjectPath );
protected:
virtual ParseStatus ParseLine( TCHAR * p_pszLine );
static bool s_bHaveStandardIncludes;
};
#endif // _VC_6_OBJECTS_H_DEFINED_
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.