- Added a new attribute 'internal' to 'Property' element. Internal properties are like regular properties but internal to rbuild (they are not included in the generated makefile)

svn path=/trunk/; revision=33526
This commit is contained in:
Marc Piulachs 2008-05-15 13:55:25 +00:00
parent 18ef8485c0
commit e5eeaef2d2
3 changed files with 27 additions and 3 deletions

View file

@ -401,9 +401,13 @@ MingwBackend::GenerateGlobalCFlagsAndProperties (
for ( i = 0; i < data.properties.size(); i++ ) for ( i = 0; i < data.properties.size(); i++ )
{ {
Property& prop = *data.properties[i]; Property& prop = *data.properties[i];
fprintf ( fMakefile, "%s := %s\n",
prop.name.c_str(), if (!prop.isInternal)
prop.value.c_str() ); {
fprintf ( fMakefile, "%s := %s\n",
prop.name.c_str(),
prop.value.c_str() );
}
} }
if ( data.includes.size() || data.defines.size() ) if ( data.includes.size() || data.defines.size() )

View file

@ -1705,6 +1705,25 @@ Property::Property ( const XMLElement& node_,
att = node_.GetAttribute ( "value", true ); att = node_.GetAttribute ( "value", true );
assert(att); assert(att);
value = att->value; value = att->value;
att = node_.GetAttribute ( "internal", false );
if ( att != NULL )
{
const char* p = att->value.c_str();
if ( !stricmp ( p, "true" ) || !stricmp ( p, "yes" ) )
isInternal = true;
else if ( !stricmp ( p, "false" ) || !stricmp ( p, "no" ) )
isInternal = false;
else
{
throw InvalidAttributeValueException (
node_.location,
"internal",
att->value );
}
}
else
isInternal = false;
} }
Property::Property ( const Project& project_, Property::Property ( const Project& project_,

View file

@ -658,6 +658,7 @@ public:
const Project& project; const Project& project;
const Module* module; const Module* module;
std::string name, value; std::string name, value;
bool isInternal;
Property ( const XMLElement& node_, Property ( const XMLElement& node_,
const Project& project_, const Project& project_,