bp2build: support strip properties.
This CL adds support to bp2build for generating all strip-related properties into a strip dictionary as a parameter in the cc_library macro. With the dictionary, it's easy to organize related attributes and directly expand into a stripped_shared_library's attributes. Test: //build/bazel/tests/bionic:compare_libc_stripping Test: TH Fixes: b/187928597 Change-Id: Ifea68d48fe295e71a43b12876cb168c475a62187
This commit is contained in:
@@ -1231,3 +1231,173 @@ cc_library {
|
||||
}),
|
||||
)`}})
|
||||
}
|
||||
|
||||
func TestCcLibraryStrip(t *testing.T) {
|
||||
runCcLibraryTestCase(t, bp2buildTestCase{
|
||||
description: "cc_library strip args",
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
cc_library {
|
||||
name: "nothing",
|
||||
bazel_module: { bp2build_available: true },
|
||||
}
|
||||
cc_library {
|
||||
name: "keep_symbols",
|
||||
bazel_module: { bp2build_available: true },
|
||||
strip: {
|
||||
keep_symbols: true,
|
||||
}
|
||||
}
|
||||
cc_library {
|
||||
name: "keep_symbols_and_debug_frame",
|
||||
bazel_module: { bp2build_available: true },
|
||||
strip: {
|
||||
keep_symbols_and_debug_frame: true,
|
||||
}
|
||||
}
|
||||
cc_library {
|
||||
name: "none",
|
||||
bazel_module: { bp2build_available: true },
|
||||
strip: {
|
||||
none: true,
|
||||
}
|
||||
}
|
||||
cc_library {
|
||||
name: "keep_symbols_list",
|
||||
bazel_module: { bp2build_available: true },
|
||||
strip: {
|
||||
keep_symbols_list: ["symbol"],
|
||||
}
|
||||
}
|
||||
cc_library {
|
||||
name: "all",
|
||||
bazel_module: { bp2build_available: true },
|
||||
strip: {
|
||||
all: true,
|
||||
}
|
||||
}
|
||||
`,
|
||||
},
|
||||
blueprint: soongCcLibraryPreamble,
|
||||
expectedBazelTargets: []string{`cc_library(
|
||||
name = "all",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"all": True,
|
||||
},
|
||||
)`, `cc_library(
|
||||
name = "keep_symbols",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"keep_symbols": True,
|
||||
},
|
||||
)`, `cc_library(
|
||||
name = "keep_symbols_and_debug_frame",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"keep_symbols_and_debug_frame": True,
|
||||
},
|
||||
)`, `cc_library(
|
||||
name = "keep_symbols_list",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"keep_symbols_list": ["symbol"],
|
||||
},
|
||||
)`, `cc_library(
|
||||
name = "none",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"none": True,
|
||||
},
|
||||
)`, `cc_library(
|
||||
name = "nothing",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
)`},
|
||||
})
|
||||
}
|
||||
|
||||
func TestCcLibraryStripWithArch(t *testing.T) {
|
||||
runCcLibraryTestCase(t, bp2buildTestCase{
|
||||
description: "cc_library strip args",
|
||||
moduleTypeUnderTest: "cc_library",
|
||||
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build,
|
||||
depsMutators: []android.RegisterMutatorFunc{cc.RegisterDepsBp2Build},
|
||||
dir: "foo/bar",
|
||||
filesystem: map[string]string{
|
||||
"foo/bar/Android.bp": `
|
||||
cc_library {
|
||||
name: "multi-arch",
|
||||
bazel_module: { bp2build_available: true },
|
||||
target: {
|
||||
darwin: {
|
||||
strip: {
|
||||
keep_symbols_list: ["foo", "bar"]
|
||||
}
|
||||
},
|
||||
},
|
||||
arch: {
|
||||
arm: {
|
||||
strip: {
|
||||
keep_symbols_and_debug_frame: true,
|
||||
},
|
||||
},
|
||||
arm64: {
|
||||
strip: {
|
||||
keep_symbols: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
`,
|
||||
},
|
||||
blueprint: soongCcLibraryPreamble,
|
||||
expectedBazelTargets: []string{`cc_library(
|
||||
name = "multi-arch",
|
||||
copts = [
|
||||
"-Ifoo/bar",
|
||||
"-I$(BINDIR)/foo/bar",
|
||||
],
|
||||
strip = {
|
||||
"keep_symbols": select({
|
||||
"//build/bazel/platforms/arch:arm64": True,
|
||||
"//conditions:default": None,
|
||||
}),
|
||||
"keep_symbols_and_debug_frame": select({
|
||||
"//build/bazel/platforms/arch:arm": True,
|
||||
"//conditions:default": None,
|
||||
}),
|
||||
"keep_symbols_list": select({
|
||||
"//build/bazel/platforms/os:darwin": [
|
||||
"foo",
|
||||
"bar",
|
||||
],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
},
|
||||
)`},
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user