Move classpaths.proto related info into a separate provider.
The new info struct can be easily shared with systemserverclasspath fragments. Bug: 180105615 Test: m nothing Change-Id: I9986e64fdf19f4168da63c156de3dc9bcafac8d8
This commit is contained in:
@@ -18,6 +18,7 @@ package java
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/google/blueprint"
|
||||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
@@ -120,6 +121,12 @@ func (c *ClasspathFragmentBase) generateClasspathProtoBuildActions(ctx android.M
|
||||
FlagWithOutput("--output=", c.outputFilepath)
|
||||
|
||||
rule.Build("classpath_fragment", "Compiling "+c.outputFilepath.String())
|
||||
|
||||
classpathProtoInfo := ClasspathFragmentProtoContentInfo{
|
||||
ClasspathFragmentProtoInstallDir: c.installDirPath,
|
||||
ClasspathFragmentProtoOutput: c.outputFilepath,
|
||||
}
|
||||
ctx.SetProvider(ClasspathFragmentProtoContentInfoProvider, classpathProtoInfo)
|
||||
}
|
||||
|
||||
func writeClasspathsJson(ctx android.ModuleContext, output android.WritablePath, jars []classpathJar) {
|
||||
@@ -157,3 +164,23 @@ func (c *ClasspathFragmentBase) androidMkEntries() []android.AndroidMkEntries {
|
||||
},
|
||||
}}
|
||||
}
|
||||
|
||||
var ClasspathFragmentProtoContentInfoProvider = blueprint.NewProvider(ClasspathFragmentProtoContentInfo{})
|
||||
|
||||
type ClasspathFragmentProtoContentInfo struct {
|
||||
// ClasspathFragmentProtoOutput is an output path for the generated classpaths.proto config of this module.
|
||||
//
|
||||
// The file should be copied to a relevant place on device, see ClasspathFragmentProtoInstallDir
|
||||
// for more details.
|
||||
ClasspathFragmentProtoOutput android.OutputPath
|
||||
|
||||
// ClasspathFragmentProtoInstallDir contains information about on device location for the generated classpaths.proto file.
|
||||
//
|
||||
// The path encodes expected sub-location within partitions, i.e. etc/classpaths/<proto-file>,
|
||||
// for ClasspathFragmentProtoOutput. To get sub-location, instead of the full output / make path
|
||||
// use android.InstallPath#Rel().
|
||||
//
|
||||
// This is only relevant for APEX modules as they perform their own installation; while regular
|
||||
// system files are installed via ClasspathFragmentBase#androidMkEntries().
|
||||
ClasspathFragmentProtoInstallDir android.InstallPath
|
||||
}
|
||||
|
Reference in New Issue
Block a user