Add "contents" property to systemserverclasspath_fragment.
Similar to bcp_fragment's contents, this property lists all java library contributions made by this fragment. Bug: 180105615 Test: m nothing Change-Id: Ifb1f54d5db290fffaa31933d15207014bb72d2fb
This commit is contained in:
@@ -17,6 +17,7 @@ package java
|
||||
import (
|
||||
"android/soong/android"
|
||||
"android/soong/dexpreopt"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -70,16 +71,30 @@ type systemServerClasspathModule struct {
|
||||
android.ModuleBase
|
||||
|
||||
ClasspathFragmentBase
|
||||
|
||||
properties systemServerClasspathFragmentProperties
|
||||
}
|
||||
|
||||
type systemServerClasspathFragmentProperties struct {
|
||||
// The contents of this systemserverclasspath_fragment, could be either java_library, or java_sdk_library.
|
||||
//
|
||||
// The order of this list matters as it is the order that is used in the SYSTEMSERVERCLASSPATH.
|
||||
Contents []string
|
||||
}
|
||||
|
||||
func systemServerClasspathFactory() android.Module {
|
||||
m := &systemServerClasspathModule{}
|
||||
m.AddProperties(&m.properties)
|
||||
initClasspathFragment(m, SYSTEMSERVERCLASSPATH)
|
||||
android.InitAndroidArchModule(m, android.DeviceSupported, android.MultilibCommon)
|
||||
return m
|
||||
}
|
||||
|
||||
func (s *systemServerClasspathModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
if len(s.properties.Contents) == 0 {
|
||||
ctx.PropertyErrorf("contents", "empty contents are not allowed")
|
||||
}
|
||||
|
||||
s.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, configuredJarListToClasspathJars(ctx, s.ClasspathFragmentToConfiguredJarList(ctx)))
|
||||
}
|
||||
|
||||
@@ -87,3 +102,22 @@ func (s *systemServerClasspathModule) ClasspathFragmentToConfiguredJarList(ctx a
|
||||
// TODO(satayev): populate with actual content
|
||||
return android.EmptyConfiguredJarList()
|
||||
}
|
||||
|
||||
type systemServerClasspathFragmentContentDependencyTag struct {
|
||||
blueprint.BaseDependencyTag
|
||||
}
|
||||
|
||||
// The tag used for the dependency between the systemserverclasspath_fragment module and its contents.
|
||||
var systemServerClasspathFragmentContentDepTag = systemServerClasspathFragmentContentDependencyTag{}
|
||||
|
||||
func IsSystemServerClasspathFragmentContentDepTag(tag blueprint.DependencyTag) bool {
|
||||
return tag == systemServerClasspathFragmentContentDepTag
|
||||
}
|
||||
|
||||
func (s *systemServerClasspathModule) ComponentDepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
module := ctx.Module()
|
||||
|
||||
for _, name := range s.properties.Contents {
|
||||
ctx.AddDependency(module, systemServerClasspathFragmentContentDepTag, name)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user