mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
Move project to its own file.
svn path=/branches/xmlbuildsystem/; revision=12793
This commit is contained in:
@@ -4,7 +4,7 @@ TARGET = rbuild$(EXE_POSTFIX)
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
BASE_OBJECTS = xml.o module.o
|
||||
BASE_OBJECTS = xml.o project.o module.o
|
||||
|
||||
OBJECTS = $(BASE_OBJECTS) rbuild.o
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning ( disable : 4786 ) // identifier was truncated to '255' characters in the debug information
|
||||
#endif//_MSC_VER
|
||||
|
||||
#include "rbuild.h"
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
Project::~Project()
|
||||
{
|
||||
for ( size_t i = 0; i < modules.size(); i++ )
|
||||
delete modules[i];
|
||||
}
|
||||
|
||||
void
|
||||
Project::ProcessXML ( const XMLElement& e, const string& path )
|
||||
{
|
||||
const XMLAttribute *att;
|
||||
string subpath(path);
|
||||
if ( e.name == "project" )
|
||||
{
|
||||
att = e.GetAttribute ( "name", false );
|
||||
if ( !att )
|
||||
name = "Unnamed";
|
||||
else
|
||||
name = att->value;
|
||||
}
|
||||
else if ( e.name == "module" )
|
||||
{
|
||||
att = e.GetAttribute ( "name", true );
|
||||
if ( !att )
|
||||
return;
|
||||
Module* module = new Module ( e, att->value, path );
|
||||
modules.push_back ( module );
|
||||
module->ProcessXML ( e, path );
|
||||
return;
|
||||
}
|
||||
else if ( e.name == "directory" )
|
||||
{
|
||||
// this code is duplicated between Project::ProcessXML() and Module::ProcessXML() :(
|
||||
const XMLAttribute* att = e.GetAttribute ( "name", true );
|
||||
if ( !att )
|
||||
return;
|
||||
subpath = path + "/" + att->value;
|
||||
}
|
||||
for ( size_t i = 0; i < e.subElements.size(); i++ )
|
||||
ProcessXML ( *e.subElements[i], subpath );
|
||||
}
|
||||
@@ -12,47 +12,6 @@
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
Project::~Project()
|
||||
{
|
||||
for ( size_t i = 0; i < modules.size(); i++ )
|
||||
delete modules[i];
|
||||
}
|
||||
|
||||
void
|
||||
Project::ProcessXML ( const XMLElement& e, const string& path )
|
||||
{
|
||||
const XMLAttribute *att;
|
||||
string subpath(path);
|
||||
if ( e.name == "project" )
|
||||
{
|
||||
att = e.GetAttribute ( "name", false );
|
||||
if ( !att )
|
||||
name = "Unnamed";
|
||||
else
|
||||
name = att->value;
|
||||
}
|
||||
else if ( e.name == "module" )
|
||||
{
|
||||
att = e.GetAttribute ( "name", true );
|
||||
if ( !att )
|
||||
return;
|
||||
Module* module = new Module ( e, att->value, path );
|
||||
modules.push_back ( module );
|
||||
module->ProcessXML ( e, path );
|
||||
return;
|
||||
}
|
||||
else if ( e.name == "directory" )
|
||||
{
|
||||
// this code is duplicated between Project::ProcessXML() and Module::ProcessXML() :(
|
||||
const XMLAttribute* att = e.GetAttribute ( "name", true );
|
||||
if ( !att )
|
||||
return;
|
||||
subpath = path + "/" + att->value;
|
||||
}
|
||||
for ( size_t i = 0; i < e.subElements.size(); i++ )
|
||||
ProcessXML ( *e.subElements[i], subpath );
|
||||
}
|
||||
|
||||
int
|
||||
main ( int argc, char** argv )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user