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

Commit e65d84c8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Enforce hidden api usage in vendor (soong)"

parents a3ded954 6bd33c13
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -510,7 +510,7 @@ type AARImport struct {
}

func (a *AARImport) sdkVersion() string {
	return String(a.properties.Sdk_version)
	return proptools.StringDefault(a.properties.Sdk_version, defaultSdkVersion(a))
}

func (a *AARImport) minSdkVersion() string {
+2 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import (
	"strings"

	"github.com/google/blueprint"
	"github.com/google/blueprint/proptools"
)

var (
@@ -520,7 +521,7 @@ func JavadocHostFactory() android.Module {
var _ android.OutputFileProducer = (*Javadoc)(nil)

func (j *Javadoc) sdkVersion() string {
	return String(j.properties.Sdk_version)
	return proptools.StringDefault(j.properties.Sdk_version, defaultSdkVersion(j))
}

func (j *Javadoc) minSdkVersion() string {
+14 −2
Original line number Diff line number Diff line
@@ -423,6 +423,18 @@ var (
	usesLibTag            = dependencyTag{name: "uses-library"}
)

func defaultSdkVersion(ctx checkVendorModuleContext) string {
	if ctx.SocSpecific() || ctx.DeviceSpecific() {
		return "system_current"
	}
	return ""
}

type checkVendorModuleContext interface {
	SocSpecific() bool
	DeviceSpecific() bool
}

type sdkDep struct {
	useModule, useFiles, useDefaultLibs, invalidVersion bool

@@ -462,7 +474,7 @@ func (j *Module) shouldInstrumentStatic(ctx android.BaseModuleContext) bool {
}

func (j *Module) sdkVersion() string {
	return String(j.deviceProperties.Sdk_version)
	return proptools.StringDefault(j.deviceProperties.Sdk_version, defaultSdkVersion(j))
}

func (j *Module) minSdkVersion() string {
@@ -1862,7 +1874,7 @@ type Import struct {
}

func (j *Import) sdkVersion() string {
	return String(j.properties.Sdk_version)
	return proptools.StringDefault(j.properties.Sdk_version, defaultSdkVersion(j))
}

func (j *Import) minSdkVersion() string {
+26 −0
Original line number Diff line number Diff line
@@ -286,6 +286,32 @@ func TestSimple(t *testing.T) {
	}
}

func TestSdkVersion(t *testing.T) {
	ctx := testJava(t, `
		java_library {
			name: "foo",
			srcs: ["a.java"],
			vendor: true,
		}

		java_library {
			name: "bar",
			srcs: ["b.java"],
		}
	`)

	foo := ctx.ModuleForTests("foo", "android_common").Module().(*Library)
	bar := ctx.ModuleForTests("bar", "android_common").Module().(*Library)

	if foo.sdkVersion() != "system_current" {
		t.Errorf("If sdk version of vendor module is empty, it must change to system_current.")
	}

	if bar.sdkVersion() != "" {
		t.Errorf("If sdk version of non-vendor module is empty, it keeps empty.")
	}
}

func TestArchSpecific(t *testing.T) {
	ctx := testJava(t, `
		java_library {