diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 72 | 
1 files changed, 40 insertions, 32 deletions
| diff --git a/java/java.go b/java/java.go index eaf0fe968..226e0b91b 100644 --- a/java/java.go +++ b/java/java.go @@ -501,7 +501,7 @@ type Dependency interface {  	ImplementationJars() android.Paths  	ResourceJars() android.Paths  	ImplementationAndResourcesJars() android.Paths -	DexJar() android.Path +	DexJarBuildPath() android.Path  	AidlIncludeDirs() android.Paths  	ExportedSdkLibs() []string  	ExportedPlugins() (android.Paths, []string) @@ -836,41 +836,47 @@ type linkTypeContext interface {  }  func (m *Module) getLinkType(name string) (ret linkType, stubs bool) { -	ver := m.sdkVersion() -	switch { -	case name == "core.current.stubs" || name == "core.platform.api.stubs" || -		name == "stub-annotations" || name == "private-stub-annotations-jar" || -		name == "core-lambda-stubs" || name == "core-generated-annotation-stubs": +	switch name { +	case "core.current.stubs", "legacy.core.platform.api.stubs", "stable.core.platform.api.stubs", +		"stub-annotations", "private-stub-annotations-jar", +		"core-lambda-stubs", "core-generated-annotation-stubs":  		return javaCore, true -	case ver.kind == sdkCore: -		return javaCore, false -	case name == "android_system_stubs_current": +	case "android_stubs_current": +		return javaSdk, true +	case "android_system_stubs_current":  		return javaSystem, true -	case ver.kind == sdkSystem: -		return javaSystem, false -	case name == "android_test_stubs_current": +	case "android_module_lib_stubs_current": +		return javaModule, true +	case "android_system_server_stubs_current": +		return javaSystemServer, true +	case "android_test_stubs_current":  		return javaSystem, true -	case ver.kind == sdkTest: -		return javaPlatform, false -	case name == "android_stubs_current": -		return javaSdk, true -	case ver.kind == sdkPublic: +	} + +	if stub, linkType := moduleStubLinkType(name); stub { +		return linkType, true +	} + +	ver := m.sdkVersion() +	switch ver.kind { +	case sdkCore: +		return javaCore, false +	case sdkSystem: +		return javaSystem, false +	case sdkPublic:  		return javaSdk, false -	case name == "android_module_lib_stubs_current": -		return javaModule, true -	case ver.kind == sdkModule: +	case sdkModule:  		return javaModule, false -	case name == "android_system_server_stubs_current": -		return javaSystemServer, true -	case ver.kind == sdkSystemServer: +	case sdkSystemServer:  		return javaSystemServer, false -	case ver.kind == sdkPrivate || ver.kind == sdkNone || ver.kind == sdkCorePlatform: +	case sdkPrivate, sdkNone, sdkCorePlatform, sdkTest:  		return javaPlatform, false -	case !ver.valid(): +	} + +	if !ver.valid() {  		panic(fmt.Errorf("sdk_version is invalid. got %q", ver.raw)) -	default: -		return javaSdk, false  	} +	return javaSdk, false  }  func checkLinkType(ctx android.ModuleContext, from *Module, to linkTypeContext, tag dependencyTag) { @@ -1739,7 +1745,7 @@ func (j *Module) ImplementationJars() android.Paths {  	return android.Paths{j.implementationJarFile}  } -func (j *Module) DexJar() android.Path { +func (j *Module) DexJarBuildPath() android.Path {  	return j.dexJarFile  } @@ -2565,7 +2571,7 @@ func (j *Import) ImplementationAndResourcesJars() android.Paths {  	return android.Paths{j.combinedClasspathFile}  } -func (j *Import) DexJar() android.Path { +func (j *Import) DexJarBuildPath() android.Path {  	return nil  } @@ -2748,11 +2754,13 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {  	j.maybeStrippedDexJarFile = dexOutputFile -	ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), -		j.Stem()+".jar", dexOutputFile) +	if j.IsForPlatform() { +		ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), +			j.Stem()+".jar", dexOutputFile) +	}  } -func (j *DexImport) DexJar() android.Path { +func (j *DexImport) DexJarBuildPath() android.Path {  	return j.dexJarFile  } |