forgot to recurse If elements when generating macros

svn path=/branches/xmlbuildsystem/; revision=12966
This commit is contained in:
Royce Mitchell III 2005-01-12 14:07:55 +00:00
parent 9264ed7582
commit a868feb94a
2 changed files with 34 additions and 1 deletions

View file

@ -267,6 +267,7 @@ MingwModuleHandler::GenerateMacros (
const vector<File*>& files, const vector<File*>& files,
const vector<Include*>* includes, const vector<Include*>* includes,
const vector<Define*>& defines, const vector<Define*>& defines,
const vector<If*>* ifs,
const string& cflags_macro, const string& cflags_macro,
const string& nasmflags_macro, const string& nasmflags_macro,
const string& objs_macro) const const string& objs_macro) const
@ -319,6 +320,35 @@ MingwModuleHandler::GenerateMacros (
} }
fprintf ( fMakefile, "\n" ); fprintf ( fMakefile, "\n" );
} }
if ( ifs && ifs->size() )
{
for ( size_t i = 0; i < module.ifs.size(); i++ )
{
If& rIf = *(*ifs)[i];
if ( rIf.defines.size() || rIf.files.size() || rIf.ifs.size() )
{
fprintf (
fMakefile,
"ifeq ($(%s),\"%s\")\n",
rIf.property.c_str(),
rIf.value.c_str() );
GenerateMacros (
module,
"+=",
rIf.files,
NULL,
rIf.defines,
&rIf.ifs,
cflags_macro,
nasmflags_macro,
objs_macro );
fprintf (
fMakefile,
"endif\n\n" );
}
}
}
} }
void void
@ -334,6 +364,7 @@ MingwModuleHandler::GenerateMacros (
module.files, module.files,
&module.includes, &module.includes,
module.defines, module.defines,
NULL,
cflags_macro, cflags_macro,
nasmflags_macro, nasmflags_macro,
objs_macro ); objs_macro );
@ -342,7 +373,7 @@ MingwModuleHandler::GenerateMacros (
for ( size_t i = 0; i < module.ifs.size(); i++ ) for ( size_t i = 0; i < module.ifs.size(); i++ )
{ {
If& rIf = *module.ifs[i]; If& rIf = *module.ifs[i];
if ( rIf.defines.size() || rIf.files.size() ) if ( rIf.defines.size() || rIf.files.size() || rIf.ifs.size() )
{ {
fprintf ( fprintf (
fMakefile, fMakefile,
@ -355,6 +386,7 @@ MingwModuleHandler::GenerateMacros (
rIf.files, rIf.files,
NULL, NULL,
rIf.defines, rIf.defines,
&rIf.ifs,
cflags_macro, cflags_macro,
nasmflags_macro, nasmflags_macro,
objs_macro ); objs_macro );

View file

@ -51,6 +51,7 @@ private:
const std::vector<File*>& files, const std::vector<File*>& files,
const std::vector<Include*>* includes, const std::vector<Include*>* includes,
const std::vector<Define*>& defines, const std::vector<Define*>& defines,
const std::vector<If*>* ifs,
const std::string& cflags_macro, const std::string& cflags_macro,
const std::string& nasmflags_macro, const std::string& nasmflags_macro,
const std::string& objs_macro) const; const std::string& objs_macro) const;