Add support for min_sdk_version

Add min_sdk_version properties and use it for aapt2
--min-sdk-version and --target-sdk-version flags.  Add an sdkContext
interface that any function that needs an sdk version can take in
order to get the values for the current module.

Bug: 110848854
Test: m checkbuild
Change-Id: Ic69f1f935d8b865ec77689350407df08bfac5925
This commit is contained in:
Colin Cross
2018-06-25 15:48:06 -07:00
parent 17ef5635fa
commit 83bb3167f6
7 changed files with 128 additions and 67 deletions

View File

@@ -332,9 +332,17 @@ func DroiddocHostFactory() android.Module {
return module
}
func (j *Javadoc) sdkVersion() string {
return String(j.properties.Sdk_version)
}
func (j *Javadoc) minSdkVersion() string {
return j.sdkVersion()
}
func (j *Javadoc) addDeps(ctx android.BottomUpMutatorContext) {
if ctx.Device() {
sdkDep := decodeSdkDep(ctx, String(j.properties.Sdk_version))
sdkDep := decodeSdkDep(ctx, sdkContext(j))
if sdkDep.useDefaultLibs {
ctx.AddDependency(ctx.Module(), bootClasspathTag, config.DefaultBootclasspathLibraries...)
if ctx.Config().TargetOpenJDK9() {
@@ -432,7 +440,7 @@ func (j *Javadoc) genSources(ctx android.ModuleContext, srcFiles android.Paths,
func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps {
var deps deps
sdkDep := decodeSdkDep(ctx, String(j.properties.Sdk_version))
sdkDep := decodeSdkDep(ctx, sdkContext(j))
if sdkDep.invalidVersion {
ctx.AddMissingDependencies(sdkDep.modules)
} else if sdkDep.useFiles {
@@ -455,7 +463,7 @@ func (j *Javadoc) collectDeps(ctx android.ModuleContext) deps {
case Dependency:
deps.classpath = append(deps.classpath, dep.ImplementationJars()...)
case SdkLibraryDependency:
sdkVersion := String(j.properties.Sdk_version)
sdkVersion := j.sdkVersion()
linkType := javaSdk
if strings.HasPrefix(sdkVersion, "system_") || strings.HasPrefix(sdkVersion, "test_") {
linkType = javaSystem
@@ -539,7 +547,7 @@ func (j *Javadoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
var bootClasspathArgs, classpathArgs string
javaVersion := getJavaVersion(ctx, String(j.properties.Java_version), String(j.properties.Sdk_version))
javaVersion := getJavaVersion(ctx, String(j.properties.Java_version), sdkContext(j))
if len(deps.bootClasspath) > 0 {
var systemModules classpath
if deps.systemModules != nil {
@@ -639,7 +647,7 @@ func (d *Droiddoc) GenerateAndroidBuildActions(ctx android.ModuleContext) {
implicits = append(implicits, deps.classpath...)
var bootClasspathArgs string
javaVersion := getJavaVersion(ctx, String(d.Javadoc.properties.Java_version), String(d.Javadoc.properties.Sdk_version))
javaVersion := getJavaVersion(ctx, String(d.Javadoc.properties.Java_version), sdkContext(d))
// Doclava has problem with "-source 1.9", so override javaVersion when Doclava
// is running with EXPERIMENTAL_USE_OPENJDK9=true. And eventually Doclava will be
// replaced by Metalava.