Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83ad956e authored by Paul Duffin's avatar Paul Duffin
Browse files

Move setting of prefer to createMemberSnapshot

Test: m nothing
Change-Id: Iab1c048fe74a5e474f68ce4acc6c1b41381368ca
parent d8561166
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -188,6 +188,12 @@ func (s *bpPropertySet) setProperty(name string, value interface{}) {
	}
}

func (s *bpPropertySet) removeProperty(name string) {
	delete(s.properties, name)
	delete(s.tags, name)
	_, s.order = android.RemoveFromList(name, s.order)
}

func (s *bpPropertySet) insertAfter(position string, name string, value interface{}) {
	if s.properties[name] != nil {
		panic("Property %q already exists in property set")
+14 −13
Original line number Diff line number Diff line
@@ -284,11 +284,6 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
	// to internal members with a unique module name and setting prefer: false.
	unversionedTransformer := unversionedTransformation{
		builder: builder,
		// Set the prefer based on the environment variable. This is a temporary work around to allow a
		// snapshot to be created that sets prefer: true.
		// TODO(b/174997203): Remove once the ability to select the modules to prefer can be done
		//  dynamically at build time not at snapshot generation time.
		prefer: ctx.Config().IsEnvTrue("SOONG_SDK_SNAPSHOT_PREFER"),
	}

	for _, unversioned := range builder.prebuiltOrder {
@@ -614,6 +609,8 @@ func (t unversionedToVersionedTransformation) transformModule(module *bpModule)
	name := module.getValue("name").(string)
	module.setProperty("name", t.builder.versionedSdkMemberName(name, true))
	module.insertAfter("name", "sdk_member_name", name)
	// Remove the prefer property if present as versioned modules never need marking with prefer.
	module.removeProperty("prefer")
	return module
}

@@ -629,20 +626,12 @@ func (t unversionedToVersionedTransformation) transformProperty(name string, val
type unversionedTransformation struct {
	identityTransformation
	builder *snapshotBuilder
	prefer  bool
}

func (t unversionedTransformation) transformModule(module *bpModule) *bpModule {
	// If the module is an internal member then use a unique name for it.
	name := module.getValue("name").(string)
	module.setProperty("name", t.builder.unversionedSdkMemberName(name, true))

	// Set prefer. Setting this to false is not strictly required as that is the default but it does
	// provide a convenient hook to post-process the generated Android.bp file, e.g. in tests to check
	// the behavior when a prebuilt is preferred. It also makes it explicit what the default behavior
	// is for the module.
	module.insertAfter("name", "prefer", t.prefer)

	return module
}

@@ -1381,6 +1370,18 @@ func (s *sdk) createMemberSnapshot(ctx *memberContext, member *sdkMember, bpModu

	memberType := member.memberType

	// Set the prefer based on the environment variable. This is a temporary work around to allow a
	// snapshot to be created that sets prefer: true.
	// TODO(b/174997203): Remove once the ability to select the modules to prefer can be done
	//  dynamically at build time not at snapshot generation time.
	prefer := ctx.sdkMemberContext.Config().IsEnvTrue("SOONG_SDK_SNAPSHOT_PREFER")

	// Set prefer. Setting this to false is not strictly required as that is the default but it does
	// provide a convenient hook to post-process the generated Android.bp file, e.g. in tests to
	// check the behavior when a prebuilt is preferred. It also makes it explicit what the default
	// behavior is for the module.
	bpModule.insertAfter("name", "prefer", prefer)

	// Group the variants by os type.
	variantsByOsType := make(map[android.OsType][]android.Module)
	variants := member.Variants()