> From: Conor MacNeill [mailto:[EMAIL PROTECTED]
> 
> Perhaps we should look at it the other way around. We almost have a
> mechanism in place for saying which properties we want to pass to a
> subbuild (namely nested <property> elements). Perhaps only those
> properties should be passed to the subbuild. The only change 
> would be to
> not require a property value. Something like
> 
>   <ant antfile="subproject/property_based_subbuild.xml">
>     <property name="param1"/>
>   </ant>
> 
> Marking a property as "not to be passed" may be putting the 
> restriction
> in the wrong place. What if I want to call two subbuilds and pass some
> properties to one and not the other. In other words the restriction
> should be at the call not the property definition (if I understood you
> correctly).
> 
> An <allprops> nested element (or attribute) could provide the current
> behaviour.
> 
> As usual I prefer things to be explicit.
> 

I really think that we are on the right track here. We could even have a
switch
for backward compatibility that causes "allprops" (or maybe "inheritprops"
is a 
better name) to default to true.
Which can be used by old build files. Or a property, but I guess we should
try to move away from magic properties. In other words:

  <ant antfile="subproject/property_based_subbuild.xml" inheritprops="true"
>
    <property name="param1"/>
  </ant>

I may want a MORE clear way to say undefine a property:

   <property name="param1" undefined="true" />

as you said the more explicit the better.

Reply via email to