Add exported_java_aconfig_library
Add a rule to generate a JAR file containing code for all aconfig flags in all packages. This is intended for apps compiled outside the platform. Also add a rule to include the new JAR file among the SDK artifacts. Note: a future CL will refine the aconfig command line options used, or filter the aconfig output: right now the JAR really contains *all* flags; we want it to include only *exported* flags. Bug: 311151343 Test: m sdk dist # manually verify that this generates $(gettop)/out/dist/android-flags.jar Change-Id: I73481a9f723a0e5487cfcd2ee697873ecc4e8275
This commit is contained in:
@@ -67,6 +67,20 @@ var (
|
||||
Command: `${aconfig} dump --dedup --format protobuf --out $out $flags`,
|
||||
CommandDeps: []string{"${aconfig}"},
|
||||
}, "flags")
|
||||
// For exported_java_aconfig_library: Generate a JAR from all
|
||||
// java_aconfig_libraries to be consumed by apps built outside the
|
||||
// platform
|
||||
exportedJavaRule = pctx.AndroidStaticRule("exported_java_aconfig_library",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf ${out}.tmp` +
|
||||
`&& for cache in ${cache_files}; do ${aconfig} create-java-lib --cache $$cache --out ${out}.tmp; done` +
|
||||
`&& $soong_zip -write_if_changed -jar -o ${out} -C ${out}.tmp -D ${out}.tmp` +
|
||||
`&& rm -rf ${out}.tmp`,
|
||||
CommandDeps: []string{
|
||||
"$aconfig",
|
||||
"$soong_zip",
|
||||
},
|
||||
}, "cache_files")
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -80,4 +94,5 @@ func RegisterBuildComponents(ctx android.RegistrationContext) {
|
||||
ctx.RegisterModuleType("aconfig_values", ValuesFactory)
|
||||
ctx.RegisterModuleType("aconfig_value_set", ValueSetFactory)
|
||||
ctx.RegisterParallelSingletonType("all_aconfig_declarations", AllAconfigDeclarationsFactory)
|
||||
ctx.RegisterParallelSingletonType("exported_java_aconfig_library", ExportedJavaDeclarationsLibraryFactory)
|
||||
}
|
||||
|
Reference in New Issue
Block a user