Merge "Improve error messages when output file is invalid"

This commit is contained in:
Treehugger Robot
2020-05-05 17:11:39 +00:00
committed by Gerrit Code Review
2 changed files with 13 additions and 2 deletions

View File

@@ -111,7 +111,7 @@ func (p *nativeBinaryInfoProperties) PopulateFromVariant(ctx android.SdkMemberCo
ccModule := variant.(*Module) ccModule := variant.(*Module)
p.archType = ccModule.Target().Arch.ArchType.String() p.archType = ccModule.Target().Arch.ArchType.String()
p.outputFile = ccModule.OutputFile().Path() p.outputFile = getRequiredMemberOutputFile(ctx, ccModule)
if ccModule.linker != nil { if ccModule.linker != nil {
specifiedDeps := specifiedDeps{} specifiedDeps := specifiedDeps{}

View File

@@ -354,7 +354,7 @@ func (p *nativeLibInfoProperties) PopulateFromVariant(ctx android.SdkMemberConte
// If the library has some link types then it produces an output binary file, otherwise it // If the library has some link types then it produces an output binary file, otherwise it
// is header only. // is header only.
if !p.memberType.noOutputFiles { if !p.memberType.noOutputFiles {
p.outputFile = ccModule.OutputFile().Path() p.outputFile = getRequiredMemberOutputFile(ctx, ccModule)
} }
// Separate out the generated include dirs (which are arch specific) from the // Separate out the generated include dirs (which are arch specific) from the
@@ -388,6 +388,17 @@ func (p *nativeLibInfoProperties) PopulateFromVariant(ctx android.SdkMemberConte
} }
} }
func getRequiredMemberOutputFile(ctx android.SdkMemberContext, ccModule *Module) android.Path {
var path android.Path
outputFile := ccModule.OutputFile()
if outputFile.Valid() {
path = outputFile.Path()
} else {
ctx.SdkModuleContext().ModuleErrorf("member variant %s does not have a valid output file", ccModule)
}
return path
}
func (p *nativeLibInfoProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { func (p *nativeLibInfoProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {
addPossiblyArchSpecificProperties(ctx.SdkModuleContext(), ctx.SnapshotBuilder(), p, propertySet) addPossiblyArchSpecificProperties(ctx.SdkModuleContext(), ctx.SnapshotBuilder(), p, propertySet)
} }