diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 48 | 
1 files changed, 44 insertions, 4 deletions
| diff --git a/java/java.go b/java/java.go index 854097b0a..2f9e03a80 100644 --- a/java/java.go +++ b/java/java.go @@ -265,6 +265,8 @@ func (j *Module) XrefJavaFiles() android.Paths {  	return j.kytheFiles  } +func (j *Module) InstallBypassMake() bool { return true } +  type dependencyTag struct {  	blueprint.BaseDependencyTag  	name string @@ -567,8 +569,23 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {  		if j.InstallMixin != nil {  			extraInstallDeps = j.InstallMixin(ctx, j.outputFile)  		} -		j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), -			j.Stem()+".jar", j.outputFile, extraInstallDeps...) +		hostDexNeeded := Bool(j.deviceProperties.Hostdex) && !ctx.Host() +		if hostDexNeeded { +			j.hostdexInstallFile = ctx.InstallFile( +				android.PathForHostDexInstall(ctx, "framework"), +				j.Stem()+"-hostdex.jar", j.outputFile) +		} +		var installDir android.InstallPath +		if ctx.InstallInTestcases() { +			var archDir string +			if !ctx.Host() { +				archDir = ctx.DeviceConfig().DeviceArch() +			} +			installDir = android.PathForModuleInstall(ctx, ctx.ModuleName(), archDir) +		} else { +			installDir = android.PathForModuleInstall(ctx, "framework") +		} +		j.installFile = ctx.InstallFile(installDir, j.Stem()+".jar", j.outputFile, extraInstallDeps...)  	}  } @@ -842,6 +859,20 @@ type JavaTestImport struct {  	dexJarFile android.Path  } +func (j *Test) InstallInTestcases() bool { +	// Host java tests install into $(HOST_OUT_JAVA_LIBRARIES), and then are copied into +	// testcases by base_rules.mk. +	return !j.Host() +} + +func (j *TestHelperLibrary) InstallInTestcases() bool { +	return true +} + +func (j *JavaTestImport) InstallInTestcases() bool { +	return true +} +  func (j *TestHost) DepsMutator(ctx android.BottomUpMutatorContext) {  	if len(j.testHostProperties.Data_native_bins) > 0 {  		for _, target := range ctx.MultiTargets() { @@ -1376,8 +1407,17 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {  	})  	if Bool(j.properties.Installable) { -		ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"), -			jarName, outputFile) +		var installDir android.InstallPath +		if ctx.InstallInTestcases() { +			var archDir string +			if !ctx.Host() { +				archDir = ctx.DeviceConfig().DeviceArch() +			} +			installDir = android.PathForModuleInstall(ctx, ctx.ModuleName(), archDir) +		} else { +			installDir = android.PathForModuleInstall(ctx, "framework") +		} +		ctx.InstallFile(installDir, jarName, outputFile)  	}  	j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs) |