[ros-diffs] [cwittich] 24845: handle IFable data

cwittich at svn.reactos.org cwittich at svn.reactos.org
Sun Nov 26 22:36:41 CET 2006


Author: cwittich
Date: Mon Nov 27 00:36:40 2006
New Revision: 24845

URL: http://svn.reactos.org/svn/reactos?rev=24845&view=rev
Log:
handle IFable data

Modified:
    trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp

Modified: trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp?rev=24845&r1=24844&r2=24845&view=diff
==============================================================================
--- trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp (original)
+++ trunk/reactos/tools/rbuild/backend/codeblocks/codeblocks.cpp Mon Nov 27 00:36:40 2006
@@ -385,6 +385,16 @@
 	{
 		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<File*>& files = data.files;
 		for ( i = 0; i < files.size(); i++ )
 		{
@@ -770,3 +780,24 @@
 		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;
+}




More information about the Ros-diffs mailing list