diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 43 | 
1 files changed, 37 insertions, 6 deletions
| diff --git a/java/java.go b/java/java.go index 22d14ecfe..9a9a02f52 100644 --- a/java/java.go +++ b/java/java.go @@ -421,6 +421,8 @@ type Module struct {  	// list of the xref extraction files  	kytheFiles android.Paths + +	distFile android.Path  }  func (j *Module) OutputFiles(tag string) (android.Paths, error) { @@ -540,9 +542,10 @@ func (s sdkDep) hasFrameworkLibs() bool {  }  type jniLib struct { -	name   string -	path   android.Path -	target android.Target +	name         string +	path         android.Path +	target       android.Target +	coverageFile android.OptionalPath  }  func (j *Module) shouldInstrument(ctx android.BaseModuleContext) bool { @@ -800,7 +803,7 @@ func (m *Module) getLinkType(name string) (ret linkType, stubs bool) {  		return javaModule, true  	case ver.kind == sdkModule:  		return javaModule, false -	case name == "services-stubs": +	case name == "android_system_server_stubs_current":  		return javaSystemServer, true  	case ver.kind == sdkSystemServer:  		return javaSystemServer, false @@ -1777,9 +1780,18 @@ func (j *Module) IsInstallable() bool {  // Java libraries (.jar file)  // +type LibraryProperties struct { +	Dist struct { +		// The tag of the output of this module that should be output. +		Tag *string `android:"arch_variant"` +	} `android:"arch_variant"` +} +  type Library struct {  	Module +	libraryProperties LibraryProperties +  	InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.Paths)  } @@ -1823,6 +1835,15 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {  		j.installFile = ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),  			ctx.ModuleName()+".jar", j.outputFile, extraInstallDeps...)  	} + +	// Verify Dist.Tag is set to a supported output +	if j.libraryProperties.Dist.Tag != nil { +		distFiles, err := j.OutputFiles(*j.libraryProperties.Dist.Tag) +		if err != nil { +			ctx.PropertyErrorf("dist.tag", "%s", err.Error()) +		} +		j.distFile = distFiles[0] +	}  }  func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) { @@ -1943,7 +1964,8 @@ func LibraryFactory() android.Module {  		&module.Module.properties,  		&module.Module.deviceProperties,  		&module.Module.dexpreoptProperties, -		&module.Module.protoProperties) +		&module.Module.protoProperties, +		&module.libraryProperties)  	android.InitApexModule(module)  	android.InitSdkAwareModule(module) @@ -2338,6 +2360,12 @@ type ImportProperties struct {  	// set the name of the output  	Stem *string + +	Aidl struct { +		// directories that should be added as include directories for any aidl sources of modules +		// that depend on this module, as well as to aidl for this module. +		Export_include_dirs []string +	}  }  type Import struct { @@ -2351,6 +2379,7 @@ type Import struct {  	combinedClasspathFile android.Path  	exportedSdkLibs       []string +	exportAidlIncludeDirs android.Paths  }  func (j *Import) sdkVersion() sdkSpec { @@ -2424,6 +2453,8 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {  		ctx.InstallFile(android.PathForModuleInstall(ctx, "framework"),  			jarName, outputFile)  	} + +	j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Aidl.Export_include_dirs)  }  var _ Dependency = (*Import)(nil) @@ -2458,7 +2489,7 @@ func (j *Import) DexJar() android.Path {  }  func (j *Import) AidlIncludeDirs() android.Paths { -	return nil +	return j.exportAidlIncludeDirs  }  func (j *Import) ExportedSdkLibs() []string { |