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:
@@ -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"
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user