Loading bp2build/cc_library_conversion_test.go +12 −39 Original line number Diff line number Diff line Loading @@ -803,8 +803,9 @@ cc_library { blueprint: soongCcLibraryPreamble, expectedBazelTargets: []string{`cc_library( name = "a", additional_linker_inputs = ["v.map"], linkopts = ["-Wl,--version-script,$(location v.map)"], srcs = ["a.cpp"], version_script = "v.map", )`}, }) } Loading Loading @@ -838,12 +839,17 @@ cc_library { blueprint: soongCcLibraryPreamble, expectedBazelTargets: []string{`cc_library( name = "a", srcs = ["a.cpp"], version_script = select({ "//build/bazel/platforms/arch:arm": "arm.map", "//build/bazel/platforms/arch:arm64": "arm64.map", "//conditions:default": None, additional_linker_inputs = select({ "//build/bazel/platforms/arch:arm": ["arm.map"], "//build/bazel/platforms/arch:arm64": ["arm64.map"], "//conditions:default": [], }), linkopts = select({ "//build/bazel/platforms/arch:arm": ["-Wl,--version-script,$(location arm.map)"], "//build/bazel/platforms/arch:arm64": ["-Wl,--version-script,$(location arm64.map)"], "//conditions:default": [], }), srcs = ["a.cpp"], )`}, }) } Loading Loading @@ -1010,39 +1016,6 @@ func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) { }) } func TestCcLibraryLabelAttributeGetTargetProperties(t *testing.T) { runCcLibraryTestCase(t, bp2buildTestCase{ description: "cc_library GetTargetProperties on a LabelAttribute", moduleTypeUnderTest: "cc_library", moduleTypeUnderTestFactory: cc.LibraryFactory, moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build, blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", srcs: ["a.cpp"], target: { android_arm: { version_script: "android_arm.map", }, linux_bionic_arm64: { version_script: "linux_bionic_arm64.map", }, }, include_build_directory: false, } `, expectedBazelTargets: []string{`cc_library( name = "a", srcs = ["a.cpp"], version_script = select({ "//build/bazel/platforms/os_arch:android_arm": "android_arm.map", "//build/bazel/platforms/os_arch:linux_bionic_arm64": "linux_bionic_arm64.map", "//conditions:default": None, }), )`}, }) } func TestCcLibraryExcludeLibs(t *testing.T) { runCcLibraryTestCase(t, bp2buildTestCase{ moduleTypeUnderTest: "cc_library", Loading bp2build/cc_library_shared_conversion_test.go +2 −1 Original line number Diff line number Diff line Loading @@ -361,7 +361,8 @@ cc_library_shared { }`, expectedBazelTargets: []string{`cc_library_shared( name = "foo_shared", version_script = "version_script", additional_linker_inputs = ["version_script"], linkopts = ["-Wl,--version-script,$(location version_script)"], )`}, }) } Loading cc/bp2build.go +15 −8 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ package cc import ( "fmt" "path/filepath" "strings" Loading Loading @@ -397,7 +398,7 @@ type linkerAttributes struct { linkCrt bazel.BoolAttribute useLibcrt bazel.BoolAttribute linkopts bazel.StringListAttribute versionScript bazel.LabelAttribute additionalLinkerInputs bazel.LabelListAttribute stripKeepSymbols bazel.BoolAttribute stripKeepSymbolsAndDebugFrame bazel.BoolAttribute stripKeepSymbolsList bazel.StringListAttribute Loading @@ -420,8 +421,8 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) systemSharedDeps := bazel.LabelListAttribute{ForceSpecifyEmptyList: true} var linkopts bazel.StringListAttribute var versionScript bazel.LabelAttribute var linkCrt bazel.BoolAttribute var additionalLinkerInputs bazel.LabelListAttribute var useLibcrt bazel.BoolAttribute var stripKeepSymbols bazel.BoolAttribute Loading Loading @@ -482,7 +483,6 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) headerDeps.SetSelectValue(axis, config, hDeps.export) implementationHeaderDeps.SetSelectValue(axis, config, hDeps.implementation) linkopts.SetSelectValue(axis, config, baseLinkerProps.Ldflags) if !BoolDefault(baseLinkerProps.Pack_relocations, packRelocationsDefault) { axisFeatures = append(axisFeatures, "disable_pack_relocations") } Loading @@ -491,9 +491,16 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) axisFeatures = append(axisFeatures, "-no_undefined_symbols") } var linkerFlags []string if len(baseLinkerProps.Ldflags) > 0 { linkerFlags = append(linkerFlags, baseLinkerProps.Ldflags...) } if baseLinkerProps.Version_script != nil { versionScript.SetSelectValue(axis, config, android.BazelLabelForModuleSrcSingle(ctx, *baseLinkerProps.Version_script)) label := android.BazelLabelForModuleSrcSingle(ctx, *baseLinkerProps.Version_script) additionalLinkerInputs.SetSelectValue(axis, config, bazel.LabelList{Includes: []bazel.Label{label}}) linkerFlags = append(linkerFlags, fmt.Sprintf("-Wl,--version-script,$(location %s)", label.Label)) } linkopts.SetSelectValue(axis, config, linkerFlags) useLibcrt.SetSelectValue(axis, config, baseLinkerProps.libCrt()) // it's very unlikely for nocrt to be arch variant, so bp2build doesn't support it. Loading Loading @@ -588,7 +595,7 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) linkCrt: linkCrt, linkopts: linkopts, useLibcrt: useLibcrt, versionScript: versionScript, additionalLinkerInputs: additionalLinkerInputs, // Strip properties stripKeepSymbols: stripKeepSymbols, Loading cc/library.go +10 −12 Original line number Diff line number Diff line Loading @@ -253,8 +253,8 @@ type bazelCcLibraryAttributes struct { Cpp_std *string // This is shared only. Version_script bazel.LabelAttribute Link_crt bazel.BoolAttribute Additional_linker_inputs bazel.LabelListAttribute // Common properties shared between both shared and static variants. Shared staticOrSharedAttributes Loading Loading @@ -332,7 +332,7 @@ func CcLibraryBp2Build(ctx android.TopDownMutatorContext) { Stl: compilerAttrs.stl, Cpp_std: compilerAttrs.cppStd, Version_script: linkerAttrs.versionScript, Additional_linker_inputs: linkerAttrs.additionalLinkerInputs, Strip: stripAttributes{ Keep_symbols: linkerAttrs.stripKeepSymbols, Loading Loading @@ -2402,7 +2402,6 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, attrs = &bazelCcLibraryStaticAttributes{ staticOrSharedAttributes: commonAttrs, Linkopts: linkerAttrs.linkopts, Use_libcrt: linkerAttrs.useLibcrt, Rtti: compilerAttrs.rtti, Stl: compilerAttrs.stl, Loading Loading @@ -2437,7 +2436,7 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, Export_system_includes: exportedIncludes.SystemIncludes, Local_includes: compilerAttrs.localIncludes, Absolute_includes: compilerAttrs.absoluteIncludes, Version_script: linkerAttrs.versionScript, Additional_linker_inputs: linkerAttrs.additionalLinkerInputs, Strip: stripAttributes{ Keep_symbols: linkerAttrs.stripKeepSymbols, Loading @@ -2463,7 +2462,6 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, type bazelCcLibraryStaticAttributes struct { staticOrSharedAttributes Linkopts bazel.StringListAttribute Use_libcrt bazel.BoolAttribute Rtti bazel.BoolAttribute Stl *string Loading Loading @@ -2504,7 +2502,7 @@ type bazelCcLibrarySharedAttributes struct { Hdrs bazel.LabelListAttribute Strip stripAttributes Version_script bazel.LabelAttribute Additional_linker_inputs bazel.LabelListAttribute Cppflags bazel.StringListAttribute Conlyflags bazel.StringListAttribute Loading Loading
bp2build/cc_library_conversion_test.go +12 −39 Original line number Diff line number Diff line Loading @@ -803,8 +803,9 @@ cc_library { blueprint: soongCcLibraryPreamble, expectedBazelTargets: []string{`cc_library( name = "a", additional_linker_inputs = ["v.map"], linkopts = ["-Wl,--version-script,$(location v.map)"], srcs = ["a.cpp"], version_script = "v.map", )`}, }) } Loading Loading @@ -838,12 +839,17 @@ cc_library { blueprint: soongCcLibraryPreamble, expectedBazelTargets: []string{`cc_library( name = "a", srcs = ["a.cpp"], version_script = select({ "//build/bazel/platforms/arch:arm": "arm.map", "//build/bazel/platforms/arch:arm64": "arm64.map", "//conditions:default": None, additional_linker_inputs = select({ "//build/bazel/platforms/arch:arm": ["arm.map"], "//build/bazel/platforms/arch:arm64": ["arm64.map"], "//conditions:default": [], }), linkopts = select({ "//build/bazel/platforms/arch:arm": ["-Wl,--version-script,$(location arm.map)"], "//build/bazel/platforms/arch:arm64": ["-Wl,--version-script,$(location arm64.map)"], "//conditions:default": [], }), srcs = ["a.cpp"], )`}, }) } Loading Loading @@ -1010,39 +1016,6 @@ func TestCcLibraryCppFlagsGoesIntoCopts(t *testing.T) { }) } func TestCcLibraryLabelAttributeGetTargetProperties(t *testing.T) { runCcLibraryTestCase(t, bp2buildTestCase{ description: "cc_library GetTargetProperties on a LabelAttribute", moduleTypeUnderTest: "cc_library", moduleTypeUnderTestFactory: cc.LibraryFactory, moduleTypeUnderTestBp2BuildMutator: cc.CcLibraryBp2Build, blueprint: soongCcLibraryPreamble + ` cc_library { name: "a", srcs: ["a.cpp"], target: { android_arm: { version_script: "android_arm.map", }, linux_bionic_arm64: { version_script: "linux_bionic_arm64.map", }, }, include_build_directory: false, } `, expectedBazelTargets: []string{`cc_library( name = "a", srcs = ["a.cpp"], version_script = select({ "//build/bazel/platforms/os_arch:android_arm": "android_arm.map", "//build/bazel/platforms/os_arch:linux_bionic_arm64": "linux_bionic_arm64.map", "//conditions:default": None, }), )`}, }) } func TestCcLibraryExcludeLibs(t *testing.T) { runCcLibraryTestCase(t, bp2buildTestCase{ moduleTypeUnderTest: "cc_library", Loading
bp2build/cc_library_shared_conversion_test.go +2 −1 Original line number Diff line number Diff line Loading @@ -361,7 +361,8 @@ cc_library_shared { }`, expectedBazelTargets: []string{`cc_library_shared( name = "foo_shared", version_script = "version_script", additional_linker_inputs = ["version_script"], linkopts = ["-Wl,--version-script,$(location version_script)"], )`}, }) } Loading
cc/bp2build.go +15 −8 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ package cc import ( "fmt" "path/filepath" "strings" Loading Loading @@ -397,7 +398,7 @@ type linkerAttributes struct { linkCrt bazel.BoolAttribute useLibcrt bazel.BoolAttribute linkopts bazel.StringListAttribute versionScript bazel.LabelAttribute additionalLinkerInputs bazel.LabelListAttribute stripKeepSymbols bazel.BoolAttribute stripKeepSymbolsAndDebugFrame bazel.BoolAttribute stripKeepSymbolsList bazel.StringListAttribute Loading @@ -420,8 +421,8 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) systemSharedDeps := bazel.LabelListAttribute{ForceSpecifyEmptyList: true} var linkopts bazel.StringListAttribute var versionScript bazel.LabelAttribute var linkCrt bazel.BoolAttribute var additionalLinkerInputs bazel.LabelListAttribute var useLibcrt bazel.BoolAttribute var stripKeepSymbols bazel.BoolAttribute Loading Loading @@ -482,7 +483,6 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) headerDeps.SetSelectValue(axis, config, hDeps.export) implementationHeaderDeps.SetSelectValue(axis, config, hDeps.implementation) linkopts.SetSelectValue(axis, config, baseLinkerProps.Ldflags) if !BoolDefault(baseLinkerProps.Pack_relocations, packRelocationsDefault) { axisFeatures = append(axisFeatures, "disable_pack_relocations") } Loading @@ -491,9 +491,16 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) axisFeatures = append(axisFeatures, "-no_undefined_symbols") } var linkerFlags []string if len(baseLinkerProps.Ldflags) > 0 { linkerFlags = append(linkerFlags, baseLinkerProps.Ldflags...) } if baseLinkerProps.Version_script != nil { versionScript.SetSelectValue(axis, config, android.BazelLabelForModuleSrcSingle(ctx, *baseLinkerProps.Version_script)) label := android.BazelLabelForModuleSrcSingle(ctx, *baseLinkerProps.Version_script) additionalLinkerInputs.SetSelectValue(axis, config, bazel.LabelList{Includes: []bazel.Label{label}}) linkerFlags = append(linkerFlags, fmt.Sprintf("-Wl,--version-script,$(location %s)", label.Label)) } linkopts.SetSelectValue(axis, config, linkerFlags) useLibcrt.SetSelectValue(axis, config, baseLinkerProps.libCrt()) // it's very unlikely for nocrt to be arch variant, so bp2build doesn't support it. Loading Loading @@ -588,7 +595,7 @@ func bp2BuildParseLinkerProps(ctx android.TopDownMutatorContext, module *Module) linkCrt: linkCrt, linkopts: linkopts, useLibcrt: useLibcrt, versionScript: versionScript, additionalLinkerInputs: additionalLinkerInputs, // Strip properties stripKeepSymbols: stripKeepSymbols, Loading
cc/library.go +10 −12 Original line number Diff line number Diff line Loading @@ -253,8 +253,8 @@ type bazelCcLibraryAttributes struct { Cpp_std *string // This is shared only. Version_script bazel.LabelAttribute Link_crt bazel.BoolAttribute Additional_linker_inputs bazel.LabelListAttribute // Common properties shared between both shared and static variants. Shared staticOrSharedAttributes Loading Loading @@ -332,7 +332,7 @@ func CcLibraryBp2Build(ctx android.TopDownMutatorContext) { Stl: compilerAttrs.stl, Cpp_std: compilerAttrs.cppStd, Version_script: linkerAttrs.versionScript, Additional_linker_inputs: linkerAttrs.additionalLinkerInputs, Strip: stripAttributes{ Keep_symbols: linkerAttrs.stripKeepSymbols, Loading Loading @@ -2402,7 +2402,6 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, attrs = &bazelCcLibraryStaticAttributes{ staticOrSharedAttributes: commonAttrs, Linkopts: linkerAttrs.linkopts, Use_libcrt: linkerAttrs.useLibcrt, Rtti: compilerAttrs.rtti, Stl: compilerAttrs.stl, Loading Loading @@ -2437,7 +2436,7 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, Export_system_includes: exportedIncludes.SystemIncludes, Local_includes: compilerAttrs.localIncludes, Absolute_includes: compilerAttrs.absoluteIncludes, Version_script: linkerAttrs.versionScript, Additional_linker_inputs: linkerAttrs.additionalLinkerInputs, Strip: stripAttributes{ Keep_symbols: linkerAttrs.stripKeepSymbols, Loading @@ -2463,7 +2462,6 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext, type bazelCcLibraryStaticAttributes struct { staticOrSharedAttributes Linkopts bazel.StringListAttribute Use_libcrt bazel.BoolAttribute Rtti bazel.BoolAttribute Stl *string Loading Loading @@ -2504,7 +2502,7 @@ type bazelCcLibrarySharedAttributes struct { Hdrs bazel.LabelListAttribute Strip stripAttributes Version_script bazel.LabelAttribute Additional_linker_inputs bazel.LabelListAttribute Cppflags bazel.StringListAttribute Conlyflags bazel.StringListAttribute Loading