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

Commit 57b1e406 authored by Vinh Tran's avatar Vinh Tran Committed by Gerrit Code Review
Browse files

Merge "Remove apex_available tag in cc_library_static generated from stubs-providing lib"

parents 58358630 55225e34
Loading
Loading
Loading
Loading
+70 −0
Original line number Diff line number Diff line
@@ -1146,6 +1146,76 @@ apex {
		}})
}

func TestApexWithStubLib(t *testing.T) {
	runApexTestCase(t, Bp2buildTestCase{
		Description:                "apex - static variant of stub lib should not have apex_available tag",
		ModuleTypeUnderTest:        "apex",
		ModuleTypeUnderTestFactory: apex.BundleFactory,
		Filesystem:                 map[string]string{},
		Blueprint: `
cc_library{
	name: "foo",
	stubs: { symbol_file: "foo.map.txt", versions: ["28", "29", "current"] },
	apex_available: ["myapex"],
}

cc_binary{
	name: "bar",
	static_libs: ["foo"],
	apex_available: ["myapex"],
}

apex {
	name: "myapex",
	manifest: "myapex_manifest.json",
	file_contexts: ":myapex-file_contexts",
	binaries: ["bar"],
	native_shared_libs: ["foo"],
}
` + simpleModuleDoNotConvertBp2build("filegroup", "myapex-file_contexts"),
		ExpectedBazelTargets: []string{
			MakeBazelTarget("cc_binary", "bar", AttrNameToString{
				"local_includes": `["."]`,
				"deps":           `[":foo_bp2build_cc_library_static"]`,
				"tags":           `["apex_available=myapex"]`,
			}),
			MakeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{
				"local_includes": `["."]`,
			}),
			MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{
				"local_includes":    `["."]`,
				"stubs_symbol_file": `"foo.map.txt"`,
				"tags":              `["apex_available=myapex"]`,
			}),
			MakeBazelTarget("cc_stub_suite", "foo_stub_libs", AttrNameToString{
				"soname":         `"foo.so"`,
				"source_library": `":foo"`,
				"symbol_file":    `"foo.map.txt"`,
				"versions": `[
        "28",
        "29",
        "current",
    ]`,
			}),
			MakeBazelTarget("apex", "myapex", AttrNameToString{
				"file_contexts": `":myapex-file_contexts"`,
				"manifest":      `"myapex_manifest.json"`,
				"binaries":      `[":bar"]`,
				"native_shared_libs_32": `select({
        "//build/bazel/platforms/arch:arm": [":foo"],
        "//build/bazel/platforms/arch:x86": [":foo"],
        "//conditions:default": [],
    })`,
				"native_shared_libs_64": `select({
        "//build/bazel/platforms/arch:arm64": [":foo"],
        "//build/bazel/platforms/arch:x86_64": [":foo"],
        "//conditions:default": [],
    })`,
			}),
		},
	})
}

func TestApexCertificateIsSrc(t *testing.T) {
	runApexTestCase(t, Bp2buildTestCase{
		Description:                "apex - certificate is src",
+9 −3
Original line number Diff line number Diff line
@@ -436,17 +436,23 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) {
		Bzl_load_location: "//build/bazel/rules/cc:cc_library_shared.bzl",
	}

	tags := android.ApexAvailableTags(m)
	var tagsForStaticVariant bazel.StringListAttribute
	if compilerAttrs.stubsSymbolFile == nil && len(compilerAttrs.stubsVersions.Value) == 0 {
		tagsForStaticVariant = android.ApexAvailableTags(m)
	}

	tagsForSharedVariant := android.ApexAvailableTags(m)

	ctx.CreateBazelTargetModuleWithRestrictions(staticProps,
		android.CommonAttributes{
			Name: m.Name() + "_bp2build_cc_library_static",
			Tags: tags,
			Tags: tagsForStaticVariant,
		},
		staticTargetAttrs, staticAttrs.Enabled)
	ctx.CreateBazelTargetModuleWithRestrictions(sharedProps,
		android.CommonAttributes{
			Name: m.Name(),
			Tags: tags,
			Tags: tagsForSharedVariant,
		},
		sharedTargetAttrs, sharedAttrs.Enabled)