forgot to remove and unneeded #include
[reactos.git] / reactos / tools / rbuild / backend / backend.cpp
1
2 #include "../pch.h"
3
4 #include "../Rbuild.h"
5 #include "backend.h"
6
7 using std::string;
8 using std::vector;
9
10 vector<Backend::Factory*>* Backend::Factory::factories = NULL;
11
12 Backend::Factory::Factory ( const std::string& name_ )
13 : name(name_)
14 {
15 if ( !factories )
16 factories = new vector<Factory*>;
17 factories->push_back ( this );
18 }
19
20 /*static*/ Backend*
21 Backend::Factory::Create ( const std::string& name, Project& project )
22 {
23 string sname ( name );
24 strlwr ( &sname[0] );
25 if ( !factories || !factories->size() )
26 throw Exception ( "internal tool error: no registered factories" );
27 vector<Backend::Factory*>& fact = *factories;
28 for ( size_t i = 0; i < fact.size(); i++ )
29 {
30 //char* p = *fact[i];
31 if ( sname == fact[i]->name )
32 return (*fact[i]) ( project );
33 }
34 throw UnknownBackendException ( sname );
35 return NULL;
36 }
37
38 Backend::Backend ( Project& project )
39 : ProjectNode ( project )
40 {
41 }