diff --git a/cc/testing.go b/cc/testing.go index 60e5cf596..aceb8c8b4 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -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, diff --git a/sysprop/sysprop_library.go b/sysprop/sysprop_library.go index ce404f8a7..65dbb22a9 100644 --- a/sysprop/sysprop_library.go +++ b/sysprop/sysprop_library.go @@ -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" diff --git a/sysprop/sysprop_test.go b/sysprop/sysprop_test.go index 7cad3da94..51da22205 100644 --- a/sysprop/sysprop_test.go +++ b/sysprop/sysprop_test.go @@ -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 {