Merge "sysprop_library: Rename system scope to public"
This commit is contained in:
@@ -39,11 +39,11 @@ var (
|
|||||||
|
|
||||||
sysprop = pctx.AndroidStaticRule("sysprop",
|
sysprop = pctx.AndroidStaticRule("sysprop",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Command: "$syspropCmd --header-dir=$headerOutDir --system-header-dir=$systemOutDir " +
|
Command: "$syspropCmd --header-dir=$headerOutDir --public-header-dir=$publicOutDir " +
|
||||||
"--source-dir=$srcOutDir --include-name=$includeName $in",
|
"--source-dir=$srcOutDir --include-name=$includeName $in",
|
||||||
CommandDeps: []string{"$syspropCmd"},
|
CommandDeps: []string{"$syspropCmd"},
|
||||||
},
|
},
|
||||||
"headerOutDir", "systemOutDir", "srcOutDir", "includeName")
|
"headerOutDir", "publicOutDir", "srcOutDir", "includeName")
|
||||||
|
|
||||||
windmc = pctx.AndroidStaticRule("windmc",
|
windmc = pctx.AndroidStaticRule("windmc",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
@@ -150,7 +150,7 @@ func genLex(ctx android.ModuleContext, lexFile android.Path, outFile android.Mod
|
|||||||
|
|
||||||
func genSysprop(ctx android.ModuleContext, syspropFile android.Path) (android.Path, android.Path) {
|
func genSysprop(ctx android.ModuleContext, syspropFile android.Path) (android.Path, android.Path) {
|
||||||
headerFile := android.PathForModuleGen(ctx, "sysprop", "include", syspropFile.Rel()+".h")
|
headerFile := android.PathForModuleGen(ctx, "sysprop", "include", syspropFile.Rel()+".h")
|
||||||
systemHeaderFile := android.PathForModuleGen(ctx, "sysprop/system", "include", syspropFile.Rel()+".h")
|
publicHeaderFile := android.PathForModuleGen(ctx, "sysprop/public", "include", syspropFile.Rel()+".h")
|
||||||
cppFile := android.PathForModuleGen(ctx, "sysprop", syspropFile.Rel()+".cpp")
|
cppFile := android.PathForModuleGen(ctx, "sysprop", syspropFile.Rel()+".cpp")
|
||||||
|
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Build(pctx, android.BuildParams{
|
||||||
@@ -161,7 +161,7 @@ func genSysprop(ctx android.ModuleContext, syspropFile android.Path) (android.Pa
|
|||||||
Input: syspropFile,
|
Input: syspropFile,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"headerOutDir": filepath.Dir(headerFile.String()),
|
"headerOutDir": filepath.Dir(headerFile.String()),
|
||||||
"systemOutDir": filepath.Dir(systemHeaderFile.String()),
|
"publicOutDir": filepath.Dir(publicHeaderFile.String()),
|
||||||
"srcOutDir": filepath.Dir(cppFile.String()),
|
"srcOutDir": filepath.Dir(cppFile.String()),
|
||||||
"includeName": syspropFile.Rel() + ".h",
|
"includeName": syspropFile.Rel() + ".h",
|
||||||
},
|
},
|
||||||
|
@@ -882,10 +882,10 @@ func (library *libraryDecorator) link(ctx ModuleContext,
|
|||||||
isVendor := ctx.useVndk()
|
isVendor := ctx.useVndk()
|
||||||
isOwnerPlatform := Bool(library.Properties.Sysprop.Platform)
|
isOwnerPlatform := Bool(library.Properties.Sysprop.Platform)
|
||||||
|
|
||||||
useSystem := isProduct || (isOwnerPlatform == isVendor)
|
usePublic := isProduct || (isOwnerPlatform == isVendor)
|
||||||
|
|
||||||
if useSystem {
|
if usePublic {
|
||||||
dir = android.PathForModuleGen(ctx, "sysprop/system", "include").String()
|
dir = android.PathForModuleGen(ctx, "sysprop/public", "include").String()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -313,13 +313,13 @@ func TestSyspropLibrary(t *testing.T) {
|
|||||||
vendorVariant := "android_arm64_armv8-a_vendor_static"
|
vendorVariant := "android_arm64_armv8-a_vendor_static"
|
||||||
|
|
||||||
platformInternalPath := "libsysprop-platform/android_arm64_armv8-a_core_static/gen/sysprop/include"
|
platformInternalPath := "libsysprop-platform/android_arm64_armv8-a_core_static/gen/sysprop/include"
|
||||||
platformSystemCorePath := "libsysprop-platform/android_arm64_armv8-a_core_static/gen/sysprop/system/include"
|
platformPublicCorePath := "libsysprop-platform/android_arm64_armv8-a_core_static/gen/sysprop/public/include"
|
||||||
platformSystemVendorPath := "libsysprop-platform/android_arm64_armv8-a_vendor_static/gen/sysprop/system/include"
|
platformPublicVendorPath := "libsysprop-platform/android_arm64_armv8-a_vendor_static/gen/sysprop/public/include"
|
||||||
|
|
||||||
platformOnProductPath := "libsysprop-platform-on-product/android_arm64_armv8-a_core_static/gen/sysprop/system/include"
|
platformOnProductPath := "libsysprop-platform-on-product/android_arm64_armv8-a_core_static/gen/sysprop/public/include"
|
||||||
|
|
||||||
vendorInternalPath := "libsysprop-vendor/android_arm64_armv8-a_vendor_static/gen/sysprop/include"
|
vendorInternalPath := "libsysprop-vendor/android_arm64_armv8-a_vendor_static/gen/sysprop/include"
|
||||||
vendorSystemPath := "libsysprop-vendor/android_arm64_armv8-a_core_static/gen/sysprop/system/include"
|
vendorPublicPath := "libsysprop-vendor/android_arm64_armv8-a_core_static/gen/sysprop/public/include"
|
||||||
|
|
||||||
platformClient := ctx.ModuleForTests("cc-client-platform", coreVariant)
|
platformClient := ctx.ModuleForTests("cc-client-platform", coreVariant)
|
||||||
platformFlags := platformClient.Rule("cc").Args["cFlags"]
|
platformFlags := platformClient.Rule("cc").Args["cFlags"]
|
||||||
@@ -342,20 +342,20 @@ func TestSyspropLibrary(t *testing.T) {
|
|||||||
productClient := ctx.ModuleForTests("cc-client-product", coreVariant)
|
productClient := ctx.ModuleForTests("cc-client-product", coreVariant)
|
||||||
productFlags := productClient.Rule("cc").Args["cFlags"]
|
productFlags := productClient.Rule("cc").Args["cFlags"]
|
||||||
|
|
||||||
// Product should use platform's and vendor's system headers
|
// Product should use platform's and vendor's public headers
|
||||||
if !strings.Contains(productFlags, platformOnProductPath) ||
|
if !strings.Contains(productFlags, platformOnProductPath) ||
|
||||||
!strings.Contains(productFlags, vendorSystemPath) {
|
!strings.Contains(productFlags, vendorPublicPath) {
|
||||||
t.Errorf("flags for product must contain %#v and %#v, but was %#v.",
|
t.Errorf("flags for product must contain %#v and %#v, but was %#v.",
|
||||||
platformSystemCorePath, vendorSystemPath, productFlags)
|
platformPublicCorePath, vendorPublicPath, productFlags)
|
||||||
}
|
}
|
||||||
|
|
||||||
vendorClient := ctx.ModuleForTests("cc-client-vendor", vendorVariant)
|
vendorClient := ctx.ModuleForTests("cc-client-vendor", vendorVariant)
|
||||||
vendorFlags := vendorClient.Rule("cc").Args["cFlags"]
|
vendorFlags := vendorClient.Rule("cc").Args["cFlags"]
|
||||||
|
|
||||||
// Vendor should use platform's system header and vendor's internal header
|
// Vendor should use platform's public header and vendor's internal header
|
||||||
if !strings.Contains(vendorFlags, platformSystemVendorPath) ||
|
if !strings.Contains(vendorFlags, platformPublicVendorPath) ||
|
||||||
!strings.Contains(vendorFlags, vendorInternalPath) {
|
!strings.Contains(vendorFlags, vendorInternalPath) {
|
||||||
t.Errorf("flags for vendor must contain %#v and %#v, but was %#v.",
|
t.Errorf("flags for vendor must contain %#v and %#v, but was %#v.",
|
||||||
platformSystemVendorPath, vendorInternalPath, vendorFlags)
|
platformPublicVendorPath, vendorInternalPath, vendorFlags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user