tree 31c3add8cd2d3de933a36e8e2b41e70e6a7b9d72
parent ecca05efb23c43093afeb97a922cdfdb7c6248f6
author Colin Cross <ccross@android.com> 1446245635 -0700
committer Colin Cross <ccross@android.com> 1446501552 -0800

Add property support for pointers to bools and strings

The only append semantics for bool that result in a no-op when the zero
value is appended is to OR the two values together, but that is rarely
the desired semantics.  Add support for *bool and *string as property
types, where appending a nil pointer is a no-op.  For *bool, appending a
non-nil pointer replaces the destination with the value.  For *string,
appending a non-nil pointer appends the value.

This also provides a more reliable replacement for
ModuleContext.ContainsProperty, as the  build logic can tell that the
property was set, even if it was set by a  mutator and not by the
blueprints file, by testing against nil.

[]string already provides these semantics for lists.

Setting a *bool or *string property from a blueprints file is the same
syntax as setting a bool or a string property.
