2 * Copyright (C) 2005 Casper S. Hornstrup
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 Bootstrap::Bootstrap ( const Project
& project_
,
26 const Module
* module_
,
27 const XMLElement
& bootstrapNode
)
35 Bootstrap::~Bootstrap ()
40 Bootstrap::IsSupportedModuleType ( ModuleType type
)
53 case KernelModeDriver
:
77 throw InvalidOperationException ( __FILE__
,
82 Bootstrap::ReplaceVariable ( const string
& name
,
86 size_t i
= path
.find ( name
);
87 if ( i
!= string::npos
)
88 return path
.replace ( i
, name
.length (), value
);
94 Bootstrap::Initialize ()
96 if ( !IsSupportedModuleType ( module
->type
) )
98 throw XMLInvalidBuildFileException (
100 "<bootstrap> is not applicable for this module type." );
103 const XMLAttribute
* att
= node
.GetAttribute ( "installbase", false );
105 base
= ReplaceVariable ( "$(CDOUTPUT)", Environment::GetCdOutputPath (), att
->value
);
109 att
= node
.GetAttribute ( "nameoncd", false );
111 nameoncd
= att
->value
;
113 nameoncd
= module
->output
->name
;
117 Bootstrap::ProcessXML()