diff options
Diffstat (limited to 'java/java.go')
| -rw-r--r-- | java/java.go | 52 | 
1 files changed, 27 insertions, 25 deletions
diff --git a/java/java.go b/java/java.go index b6094f913..71b95dff9 100644 --- a/java/java.go +++ b/java/java.go @@ -1720,7 +1720,31 @@ func (j *Library) javaStubFilePathFor() string {  	return filepath.Join(javaStubDir, j.Name()+javaStubFileSuffix)  } -func (j *Library) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder) { +var LibrarySdkMemberType = &librarySdkMemberType{} + +type librarySdkMemberType struct { +} + +func (mt *librarySdkMemberType) AddDependencies(mctx android.BottomUpMutatorContext, dependencyTag blueprint.DependencyTag, names []string) { +	mctx.AddVariationDependencies(nil, dependencyTag, names...) +} + +func (mt *librarySdkMemberType) IsInstance(module android.Module) bool { +	_, ok := module.(*Library) +	return ok +} + +func (mt *librarySdkMemberType) BuildSnapshot(sdkModuleContext android.ModuleContext, builder android.SnapshotBuilder, member android.SdkMember) { +	variants := member.Variants() +	if len(variants) != 1 { +		sdkModuleContext.ModuleErrorf("sdk contains %d variants of member %q but only one is allowed", len(variants), member.Name()) +		for _, variant := range variants { +			sdkModuleContext.ModuleErrorf("    %q", variant) +		} +	} +	variant := variants[0] +	j := variant.(*Library) +  	headerJars := j.HeaderJars()  	if len(headerJars) != 1 {  		panic(fmt.Errorf("there must be only one header jar from %q", j.Name())) @@ -1736,30 +1760,8 @@ func (j *Library) BuildSnapshot(sdkModuleContext android.ModuleContext, builder  		}  	} -	j.generateJavaImport(builder, snapshotRelativeJavaLibPath, true) - -	// This module is for the case when the source tree for the unversioned module -	// doesn't exist (i.e. building in an unbundled tree). "prefer:" is set to false -	// so that this module does not eclipse the unversioned module if it exists. -	j.generateJavaImport(builder, snapshotRelativeJavaLibPath, false) -} - -func (j *Library) generateJavaImport(builder android.SnapshotBuilder, snapshotRelativeJavaLibPath string, versioned bool) { -	bp := builder.AndroidBpFile() -	name := j.Name() -	bp.Printfln("java_import {") -	bp.Indent() -	if versioned { -		bp.Printfln("name: %q,", builder.VersionedSdkMemberName(name)) -		bp.Printfln("sdk_member_name: %q,", name) -	} else { -		bp.Printfln("name: %q,", name) -		bp.Printfln("prefer: false,") -	} -	bp.Printfln("jars: [%q],", snapshotRelativeJavaLibPath) -	bp.Dedent() -	bp.Printfln("}") -	bp.Printfln("") +	module := builder.AddPrebuiltModule(sdkModuleContext.OtherModuleName(j), "java_import") +	module.AddProperty("jars", []string{snapshotRelativeJavaLibPath})  }  // java_library builds and links sources into a `.jar` file for the device, and possibly for the host as well.  |