Add C++ Host support on sysprop_library
With Host_supported: true, C++ part of sysprop_library will create host variant which can be used from host modules. As there are no native system property support on host, libbase functions will be used instead. Adding support on host will help reduce code complexity of other host_supported modules. Bug: 147708854 Test: m, sysprop_test, manually test host binary Change-Id: I850d91fea298ef1a0c16c6a7a9ec1aca5cf37e69
This commit is contained in:
parent
eb9b9f23ec
commit
89db15dcab
3 changed files with 31 additions and 4 deletions
|
@ -188,6 +188,7 @@ func GatherRequiredDepsForTest(os android.OsType) string {
|
|||
stl: "none",
|
||||
vendor_available: true,
|
||||
recovery_available: true,
|
||||
host_supported: true,
|
||||
}
|
||||
cc_library {
|
||||
name: "libc++",
|
||||
|
@ -197,6 +198,7 @@ func GatherRequiredDepsForTest(os android.OsType) string {
|
|||
stl: "none",
|
||||
vendor_available: true,
|
||||
recovery_available: true,
|
||||
host_supported: true,
|
||||
vndk: {
|
||||
enabled: true,
|
||||
support_system_process: true,
|
||||
|
|
|
@ -144,6 +144,9 @@ type syspropLibraryProperties struct {
|
|||
// list of .sysprop files which defines the properties.
|
||||
Srcs []string `android:"path"`
|
||||
|
||||
// If set to true, build a variant of the module for the host. Defaults to false.
|
||||
Host_supported *bool
|
||||
|
||||
// Whether public stub exists or not.
|
||||
Public_stub *bool `blueprint:"mutated"`
|
||||
}
|
||||
|
@ -306,12 +309,20 @@ type ccLibraryProperties struct {
|
|||
Sysprop struct {
|
||||
Platform *bool
|
||||
}
|
||||
Header_libs []string
|
||||
Shared_libs []string
|
||||
Target struct {
|
||||
Android struct {
|
||||
Header_libs []string
|
||||
Shared_libs []string
|
||||
}
|
||||
Host struct {
|
||||
Static_libs []string
|
||||
}
|
||||
}
|
||||
Required []string
|
||||
Recovery *bool
|
||||
Recovery_available *bool
|
||||
Vendor_available *bool
|
||||
Host_supported *bool
|
||||
}
|
||||
|
||||
type javaLibraryProperties struct {
|
||||
|
@ -394,10 +405,12 @@ func syspropLibraryHook(ctx android.LoadHookContext, m *syspropLibrary) {
|
|||
ccProps.Device_specific = proptools.BoolPtr(ctx.DeviceSpecific())
|
||||
ccProps.Product_specific = proptools.BoolPtr(ctx.ProductSpecific())
|
||||
ccProps.Sysprop.Platform = proptools.BoolPtr(isOwnerPlatform)
|
||||
ccProps.Header_libs = []string{"libbase_headers"}
|
||||
ccProps.Shared_libs = []string{"liblog"}
|
||||
ccProps.Target.Android.Header_libs = []string{"libbase_headers"}
|
||||
ccProps.Target.Android.Shared_libs = []string{"liblog"}
|
||||
ccProps.Target.Host.Static_libs = []string{"libbase", "liblog"}
|
||||
ccProps.Recovery_available = m.properties.Recovery_available
|
||||
ccProps.Vendor_available = m.properties.Vendor_available
|
||||
ccProps.Host_supported = m.properties.Host_supported
|
||||
ctx.CreateModule(cc.LibraryFactory, &ccProps)
|
||||
|
||||
scope := "internal"
|
||||
|
|
|
@ -161,6 +161,7 @@ func TestSyspropLibrary(t *testing.T) {
|
|||
api_packages: ["android.sysprop"],
|
||||
property_owner: "Platform",
|
||||
vendor_available: true,
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
sysprop_library {
|
||||
|
@ -244,6 +245,11 @@ func TestSyspropLibrary(t *testing.T) {
|
|||
static_libs: ["sysprop-platform", "sysprop-vendor"],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libbase",
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
name: "libbase_headers",
|
||||
vendor_available: true,
|
||||
|
@ -256,6 +262,12 @@ func TestSyspropLibrary(t *testing.T) {
|
|||
nocrt: true,
|
||||
system_shared_libs: [],
|
||||
recovery_available: true,
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_binary_host {
|
||||
name: "hostbin",
|
||||
static_libs: ["sysprop-platform"],
|
||||
}
|
||||
|
||||
llndk_library {
|
||||
|
|
Loading…
Reference in a new issue