bp2build: split full_cc_library into shared/static

Test: mixed_droid.sh in conjunction with rule changes
Test: bp2build.sh
Change-Id: If0577065fd39a0446eab16b62c15204d43207e19
This commit is contained in:
Chris Parsons
2021-12-03 17:27:16 -05:00
parent 85c0097d69
commit 77acf2e5c1
5 changed files with 561 additions and 434 deletions

View File

@@ -385,9 +385,12 @@ func (ll labelListSelectValues) addSelects(label labelSelectValues) {
}
}
func (ll labelListSelectValues) appendSelects(other labelListSelectValues) {
func (ll labelListSelectValues) appendSelects(other labelListSelectValues, forceSpecifyEmptyList bool) {
for k, v := range other {
l := ll[k]
if forceSpecifyEmptyList && l.IsNil() && !v.IsNil() {
l.Includes = []Label{}
}
(&l).Append(v)
ll[k] = l
}
@@ -443,17 +446,22 @@ func (cll configurableLabelLists) setValueForAxis(axis ConfigurationAxis, config
cll[axis][config] = list
}
func (cll configurableLabelLists) Append(other configurableLabelLists) {
func (cll configurableLabelLists) Append(other configurableLabelLists, forceSpecifyEmptyList bool) {
for axis, otherSelects := range other {
selects := cll[axis]
if selects == nil {
selects = make(labelListSelectValues, len(otherSelects))
}
selects.appendSelects(otherSelects)
selects.appendSelects(otherSelects, forceSpecifyEmptyList)
cll[axis] = selects
}
}
func (lla *LabelListAttribute) Clone() *LabelListAttribute {
result := &LabelListAttribute{ForceSpecifyEmptyList: lla.ForceSpecifyEmptyList}
return result.Append(*lla)
}
// MakeLabelListAttribute initializes a LabelListAttribute with the non-arch specific value.
func MakeLabelListAttribute(value LabelList) LabelListAttribute {
return LabelListAttribute{
@@ -507,16 +515,18 @@ func (lla *LabelListAttribute) SortedConfigurationAxes() []ConfigurationAxis {
}
// Append all values, including os and arch specific ones, from another
// LabelListAttribute to this LabelListAttribute.
func (lla *LabelListAttribute) Append(other LabelListAttribute) {
if lla.ForceSpecifyEmptyList && !other.Value.IsNil() {
// LabelListAttribute to this LabelListAttribute. Returns this LabelListAttribute.
func (lla *LabelListAttribute) Append(other LabelListAttribute) *LabelListAttribute {
forceSpecifyEmptyList := lla.ForceSpecifyEmptyList || other.ForceSpecifyEmptyList
if forceSpecifyEmptyList && lla.Value.IsNil() && !other.Value.IsNil() {
lla.Value.Includes = []Label{}
}
lla.Value.Append(other.Value)
if lla.ConfigurableValues == nil {
lla.ConfigurableValues = make(configurableLabelLists)
}
lla.ConfigurableValues.Append(other.ConfigurableValues)
lla.ConfigurableValues.Append(other.ConfigurableValues, forceSpecifyEmptyList)
return lla
}
// Add inserts the labels for each axis of LabelAttribute at the end of corresponding axis's
@@ -795,12 +805,18 @@ func (sla StringListAttribute) HasConfigurableValues() bool {
// Append appends all values, including os and arch specific ones, from another
// StringListAttribute to this StringListAttribute
func (sla *StringListAttribute) Append(other StringListAttribute) {
func (sla *StringListAttribute) Append(other StringListAttribute) *StringListAttribute {
sla.Value = append(sla.Value, other.Value...)
if sla.ConfigurableValues == nil {
sla.ConfigurableValues = make(configurableStringLists)
}
sla.ConfigurableValues.Append(other.ConfigurableValues)
return sla
}
func (sla *StringListAttribute) Clone() *StringListAttribute {
result := &StringListAttribute{}
return result.Append(*sla)
}
// SetSelectValue set a value for a bazel select for the given axis, config and value.