Support bssl hash injection for libcrypto.
Bug: 215541108 Test: Build libcrypto with Bazel and verify the hash injected, add unit test Change-Id: I0375307aab0b1e60a8be298d680e1e0af1ebb454 Change-Id: I9133ce398e2024fe7834a292bf2f5ba3222d630b
This commit is contained in:
parent
47cb940902
commit
75be7b94d6
2 changed files with 44 additions and 0 deletions
|
@ -1287,6 +1287,7 @@ func makeCcLibraryTargets(name string, attrs attrNameToString) []string {
|
||||||
"strip": true,
|
"strip": true,
|
||||||
"stubs_symbol_file": true,
|
"stubs_symbol_file": true,
|
||||||
"stubs_versions": true,
|
"stubs_versions": true,
|
||||||
|
"inject_bssl_hash": true,
|
||||||
}
|
}
|
||||||
sharedAttrs := attrNameToString{}
|
sharedAttrs := attrNameToString{}
|
||||||
staticAttrs := attrNameToString{}
|
staticAttrs := attrNameToString{}
|
||||||
|
@ -1822,6 +1823,33 @@ cc_library {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLibcryptoHashInjection(t *testing.T) {
|
||||||
|
runCcLibraryTestCase(t, bp2buildTestCase{
|
||||||
|
description: "cc_library - libcrypto hash injection",
|
||||||
|
moduleTypeUnderTest: "cc_library",
|
||||||
|
moduleTypeUnderTestFactory: cc.LibraryFactory,
|
||||||
|
filesystem: map[string]string{},
|
||||||
|
blueprint: soongCcLibraryPreamble + `
|
||||||
|
cc_library {
|
||||||
|
name: "libcrypto",
|
||||||
|
target: {
|
||||||
|
android: {
|
||||||
|
inject_bssl_hash: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
include_build_directory: false,
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
expectedBazelTargets: makeCcLibraryTargets("libcrypto", attrNameToString{
|
||||||
|
"inject_bssl_hash": `select({
|
||||||
|
"//build/bazel/platforms/os:android": True,
|
||||||
|
"//conditions:default": None,
|
||||||
|
})`,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
func TestCcLibraryCppStdWithGnuExtensions_ConvertsToFeatureAttr(t *testing.T) {
|
func TestCcLibraryCppStdWithGnuExtensions_ConvertsToFeatureAttr(t *testing.T) {
|
||||||
type testCase struct {
|
type testCase struct {
|
||||||
cpp_std string
|
cpp_std string
|
||||||
|
|
|
@ -386,6 +386,21 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) {
|
||||||
Stubs_versions: compilerAttrs.stubsVersions,
|
Stubs_versions: compilerAttrs.stubsVersions,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for axis, configToProps := range m.GetArchVariantProperties(ctx, &LibraryProperties{}) {
|
||||||
|
for config, props := range configToProps {
|
||||||
|
if props, ok := props.(*LibraryProperties); ok {
|
||||||
|
if props.Inject_bssl_hash != nil {
|
||||||
|
// This is an edge case applies only to libcrypto
|
||||||
|
if m.Name() == "libcrypto" {
|
||||||
|
sharedTargetAttrs.Inject_bssl_hash.SetSelectValue(axis, config, props.Inject_bssl_hash)
|
||||||
|
} else {
|
||||||
|
ctx.PropertyErrorf("inject_bssl_hash", "only applies to libcrypto")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
staticProps := bazel.BazelTargetModuleProperties{
|
staticProps := bazel.BazelTargetModuleProperties{
|
||||||
Rule_class: "cc_library_static",
|
Rule_class: "cc_library_static",
|
||||||
Bzl_load_location: "//build/bazel/rules:cc_library_static.bzl",
|
Bzl_load_location: "//build/bazel/rules:cc_library_static.bzl",
|
||||||
|
@ -2600,4 +2615,5 @@ type bazelCcLibrarySharedAttributes struct {
|
||||||
|
|
||||||
Stubs_symbol_file *string
|
Stubs_symbol_file *string
|
||||||
Stubs_versions bazel.StringListAttribute
|
Stubs_versions bazel.StringListAttribute
|
||||||
|
Inject_bssl_hash bazel.BoolAttribute
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue