Add apex_available to sysprop_library

Added apex_available support to sysprop_library and copied it onto the
underlying cc_library.

Bug: 152762638
Test: m nothing
Change-Id: I8f4c539532b48f3a45c1fbf0f7287db11df69d2f
This commit is contained in:
Paul Duffin
2020-03-30 18:00:25 +01:00
parent df915ff3db
commit 7b3de8f85b
2 changed files with 13 additions and 1 deletions

View File

@@ -116,6 +116,7 @@ func syspropJavaGenFactory() android.Module {
type syspropLibrary struct { type syspropLibrary struct {
android.ModuleBase android.ModuleBase
android.ApexModuleBase
properties syspropLibraryProperties properties syspropLibraryProperties
@@ -314,6 +315,7 @@ func syspropLibraryFactory() android.Module {
&m.properties, &m.properties,
) )
android.InitAndroidModule(m) android.InitAndroidModule(m)
android.InitApexModule(m)
android.AddLoadHook(m, func(ctx android.LoadHookContext) { syspropLibraryHook(ctx, m) }) android.AddLoadHook(m, func(ctx android.LoadHookContext) { syspropLibraryHook(ctx, m) })
return m return m
} }
@@ -341,6 +343,7 @@ type ccLibraryProperties struct {
Recovery_available *bool Recovery_available *bool
Vendor_available *bool Vendor_available *bool
Host_supported *bool Host_supported *bool
Apex_available []string
} }
type javaLibraryProperties struct { type javaLibraryProperties struct {
@@ -429,6 +432,7 @@ func syspropLibraryHook(ctx android.LoadHookContext, m *syspropLibrary) {
ccProps.Recovery_available = m.properties.Recovery_available ccProps.Recovery_available = m.properties.Recovery_available
ccProps.Vendor_available = m.properties.Vendor_available ccProps.Vendor_available = m.properties.Vendor_available
ccProps.Host_supported = m.properties.Host_supported ccProps.Host_supported = m.properties.Host_supported
ccProps.Apex_available = m.ApexProperties.Apex_available
ctx.CreateModule(cc.LibraryFactory, &ccProps) ctx.CreateModule(cc.LibraryFactory, &ccProps)
scope := "internal" scope := "internal"

View File

@@ -15,6 +15,8 @@
package sysprop package sysprop
import ( import (
"reflect"
"android/soong/android" "android/soong/android"
"android/soong/cc" "android/soong/cc"
"android/soong/java" "android/soong/java"
@@ -157,6 +159,7 @@ func TestSyspropLibrary(t *testing.T) {
ctx := test(t, ` ctx := test(t, `
sysprop_library { sysprop_library {
name: "sysprop-platform", name: "sysprop-platform",
apex_available: ["//apex_available:platform"],
srcs: ["android/sysprop/PlatformProperties.sysprop"], srcs: ["android/sysprop/PlatformProperties.sysprop"],
api_packages: ["android.sysprop"], api_packages: ["android.sysprop"],
property_owner: "Platform", property_owner: "Platform",
@@ -305,7 +308,12 @@ func TestSyspropLibrary(t *testing.T) {
"android_arm64_armv8-a_shared", "android_arm64_armv8-a_shared",
"android_arm64_armv8-a_static", "android_arm64_armv8-a_static",
} { } {
ctx.ModuleForTests("libsysprop-platform", variant) library := ctx.ModuleForTests("libsysprop-platform", variant).Module().(*cc.Module)
expectedApexAvailableOnLibrary := []string{"//apex_available:platform"}
if !reflect.DeepEqual(library.ApexProperties.Apex_available, expectedApexAvailableOnLibrary) {
t.Errorf("apex available property on libsysprop-platform must be %#v, but was %#v.",
expectedApexAvailableOnLibrary, library.ApexProperties.Apex_available)
}
// core variant of vendor-owned sysprop_library is for product // core variant of vendor-owned sysprop_library is for product
ctx.ModuleForTests("libsysprop-vendor", variant) ctx.ModuleForTests("libsysprop-vendor", variant)