From 6434224fea41a0a0ca5bcc8fcb7842480ffc12ae Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 26 Nov 2006 21:36:40 +0000 Subject: [PATCH] handle IFable data svn path=/trunk/; revision=24845 --- .../rbuild/backend/codeblocks/codeblocks.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp b/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp index 1367c8b724b..6b9065a25e0 100644 --- a/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp +++ b/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp @@ -385,6 +385,16 @@ CBBackend::_generate_cbproj ( const Module& module ) { const IfableData& data = *ifs_list.back(); ifs_list.pop_back(); + for ( i = 0; i < data.ifs.size(); i++ ) + { + const Property* property = _lookup_property( module, data.ifs[i]->property ); + if ( property != NULL ) + { + if ( data.ifs[i]->value == property->value && data.ifs[i]->negated == false || + data.ifs[i]->value != property->value && data.ifs[i]->negated) + ifs_list.push_back ( &data.ifs[i]->data ); + } + } const vector& files = data.files; for ( i = 0; i < files.size(); i++ ) { @@ -770,3 +780,24 @@ CBBackend::MingwAddImplicitLibraries( Module &module ) module.non_if_data.libraries.push_back ( pLibrary ); } } + +const Property* +CBBackend::_lookup_property ( const Module& module, const std::string& name ) const +{ + /* Check local values */ + for ( size_t i = 0; i < module.non_if_data.properties.size(); i++ ) + { + const Property& property = *module.non_if_data.properties[i]; + if ( property.name == name ) + return &property; + } + // TODO FIXME - should we check local if-ed properties? + for ( size_t i = 0; i < module.project.non_if_data.properties.size(); i++ ) + { + const Property& property = *module.project.non_if_data.properties[i]; + if ( property.name == name ) + return &property; + } + // TODO FIXME - should we check global if-ed properties? + return NULL; +}