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

Commit 484aa258 authored by Rupert Shuttleworth's avatar Rupert Shuttleworth
Browse files

Add initial support for use_version_lib.

Test: Resolves build error for BP2BUILD_VERBOSE=1 b build //packages/modules/adb:libadbd_core
Test: Added unit test

Bug: 208481704

Change-Id: I4022c686c7baf050de3f97295fe4654515622a66
parent 8d0bd355
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -450,3 +450,18 @@ func TestCcLibrarySharedProto(t *testing.T) {
		},
	})
}

func TestCcLibrarySharedUseVersionLib(t *testing.T) {
	runCcLibrarySharedTestCase(t, bp2buildTestCase{
		blueprint: soongCcProtoPreamble + `cc_library_shared {
        name: "foo",
        use_version_lib: true,
        include_build_directory: false,
}`,
		expectedBazelTargets: []string{
			makeBazelTarget("cc_library_shared", "foo", attrNameToString{
				"use_version_lib": "True",
			}),
		},
	})
}
+15 −0
Original line number Diff line number Diff line
@@ -1443,3 +1443,18 @@ func TestCcLibraryStaticProto(t *testing.T) {
		},
	})
}

func TestCcLibraryStaticUseVersionLib(t *testing.T) {
	runCcLibraryStaticTestCase(t, bp2buildTestCase{
		blueprint: soongCcProtoPreamble + `cc_library_static {
	name: "foo",
	use_version_lib: true,
	include_build_directory: false,
}`,
		expectedBazelTargets: []string{
			makeBazelTarget("cc_library_static", "foo", attrNameToString{
				"use_version_lib": "True",
			}),
		},
	})
}
+5 −0
Original line number Diff line number Diff line
@@ -496,6 +496,7 @@ type linkerAttributes struct {

	linkCrt                       bazel.BoolAttribute
	useLibcrt                     bazel.BoolAttribute
	useVersionLib                 bazel.BoolAttribute
	linkopts                      bazel.StringListAttribute
	additionalLinkerInputs        bazel.LabelListAttribute
	stripKeepSymbols              bazel.BoolAttribute
@@ -565,6 +566,10 @@ func (la *linkerAttributes) bp2buildForAxisAndConfig(ctx android.BazelConversion
	la.linkopts.SetSelectValue(axis, config, linkerFlags)
	la.useLibcrt.SetSelectValue(axis, config, props.libCrt())

	if axis == bazel.NoConfigAxis {
		la.useVersionLib.SetSelectValue(axis, config, props.Use_version_lib)
	}

	// it's very unlikely for nocrt to be arch variant, so bp2build doesn't support it.
	if props.crt() != nil {
		if axis == bazel.NoConfigAxis {
+29 −20
Original line number Diff line number Diff line
@@ -2481,6 +2481,8 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext,
			staticOrSharedAttributes: commonAttrs,

			Use_libcrt:      linkerAttrs.useLibcrt,
			Use_version_lib: linkerAttrs.useVersionLib,

			Rtti:                   compilerAttrs.rtti,
			Stl:                    compilerAttrs.stl,
			Cpp_std:                compilerAttrs.cppStd,
@@ -2505,10 +2507,12 @@ func ccSharedOrStaticBp2BuildMutatorInternal(ctx android.TopDownMutatorContext,
			Cppflags:   compilerAttrs.cppFlags,
			Conlyflags: compilerAttrs.conlyFlags,
			Asflags:    asFlags,
			Linkopts:   linkerAttrs.linkopts,

			Linkopts:        linkerAttrs.linkopts,
			Link_crt:        linkerAttrs.linkCrt,
			Use_libcrt:      linkerAttrs.useLibcrt,
			Use_version_lib: linkerAttrs.useVersionLib,

			Rtti:    compilerAttrs.rtti,
			Stl:     compilerAttrs.stl,
			Cpp_std: compilerAttrs.cppStd,
@@ -2545,6 +2549,8 @@ type bazelCcLibraryStaticAttributes struct {
	staticOrSharedAttributes

	Use_libcrt      bazel.BoolAttribute
	Use_version_lib bazel.BoolAttribute

	Rtti    bazel.BoolAttribute
	Stl     *string
	Cpp_std *string
@@ -2581,7 +2587,10 @@ type bazelCcLibrarySharedAttributes struct {

	Linkopts bazel.StringListAttribute
	Link_crt bazel.BoolAttribute // Only for linking shared library (and cc_binary)

	Use_libcrt      bazel.BoolAttribute
	Use_version_lib bazel.BoolAttribute

	Rtti    bazel.BoolAttribute
	Stl     *string
	Cpp_std *string