Loading bp2build/cc_library_conversion_test.go +28 −0 Original line number Diff line number Diff line Loading @@ -1287,6 +1287,7 @@ func makeCcLibraryTargets(name string, attrs attrNameToString) []string { "strip": true, "stubs_symbol_file": true, "stubs_versions": true, "inject_bssl_hash": true, } sharedAttrs := attrNameToString{} staticAttrs := attrNameToString{} Loading Loading @@ -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) { type testCase struct { cpp_std string Loading cc/library.go +16 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,21 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) { 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{ Rule_class: "cc_library_static", Bzl_load_location: "//build/bazel/rules:cc_library_static.bzl", Loading Loading @@ -2602,4 +2617,5 @@ type bazelCcLibrarySharedAttributes struct { Stubs_symbol_file *string Stubs_versions bazel.StringListAttribute Inject_bssl_hash bazel.BoolAttribute } Loading
bp2build/cc_library_conversion_test.go +28 −0 Original line number Diff line number Diff line Loading @@ -1287,6 +1287,7 @@ func makeCcLibraryTargets(name string, attrs attrNameToString) []string { "strip": true, "stubs_symbol_file": true, "stubs_versions": true, "inject_bssl_hash": true, } sharedAttrs := attrNameToString{} staticAttrs := attrNameToString{} Loading Loading @@ -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) { type testCase struct { cpp_std string Loading
cc/library.go +16 −0 Original line number Diff line number Diff line Loading @@ -386,6 +386,21 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) { 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{ Rule_class: "cc_library_static", Bzl_load_location: "//build/bazel/rules:cc_library_static.bzl", Loading Loading @@ -2602,4 +2617,5 @@ type bazelCcLibrarySharedAttributes struct { Stubs_symbol_file *string Stubs_versions bazel.StringListAttribute Inject_bssl_hash bazel.BoolAttribute }