aboutsummaryrefslogtreecommitdiff
path: root/java/aapt2.go
diff options
context:
space:
mode:
authormosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
committermosimchah <mosimchah@gmail.com>2025-12-02 09:27:38 -0500
commitc7bade461dc55726f62997d13a48582f7c4b4655 (patch)
treeea0588da76060a2038f54f67efd046ca77634b10 /java/aapt2.go
parent0f5414d19317805e8bbbe7c4db5f0fd78769bad5 (diff)
parent89d78cff8b00d3b20a90074635c3fe5a2ee49474 (diff)
Merge branch 'lineage-23.1' of https://github.com/LineageOS/android_build_soong into HEADw16.1
* 'lineage-23.1' of https://github.com/LineageOS/android_build_soong: (528 commits) Revert "install_symlink: Make symlink target configurable" Reapply "Clear as much of cc.Module as possible after GenerateBuildActions" Revert "rust: config: Fix missing CPU variant LD flags in Rust" Rename build-flag in outdir Revert^4 "cipd: Default CIPD proxy server to on, add opt-out" Convert check-vintf-all to phony with actions Create a partial implementation of check-vintf-all for soong-only Configure RBE rust pool based on build variant Revert^3 "Add sdk version check to arr" Add jdk.internal.invoke to the allowlist Make droid always depend on symbols zip Import Device and Odm skus Don't install gob_gen in Soong Remove bazel reference from run_integration_tests.sh Fix bootstrap_test.sh Don't panic in aconfig libraries when AllowMissingDependencies is set Avoid returning nil paths from PathForModuleSrc Revert "Flag controled clang version" Rework module target dependencies on required deps Revert^2 "Add sdk version check to arr" ... Change-Id: I6e9a63fa14fda917a42e426e5dcebbad7f67e1de
Diffstat (limited to 'java/aapt2.go')
-rw-r--r--java/aapt2.go23
1 files changed, 15 insertions, 8 deletions
diff --git a/java/aapt2.go b/java/aapt2.go
index bae4d1ee3..4efa6655a 100644
--- a/java/aapt2.go
+++ b/java/aapt2.go
@@ -52,14 +52,15 @@ func pathToAapt2Path(ctx android.ModuleContext, res android.Path) android.Writab
}
subDir := filepath.Dir(res.String())
subDir, lastDir := filepath.Split(subDir)
- if isFlagsPath(subDir) {
- var flag string
+ var flag string
+ if isFlagsPath(lastDir) {
+ flag = "." + strings.TrimPrefix(lastDir, "flag")
+ subDir, lastDir = filepath.Split(filepath.Dir(subDir))
+ } else if isFlagsPath(subDir) {
subDir, flag = filepath.Split(filepath.Dir(subDir))
- flag = strings.TrimPrefix(flag, "flag")
- name = fmt.Sprintf("%s_%s.%s%s.flat", lastDir, name, flag, extension)
- } else {
- name = fmt.Sprintf("%s_%s%s.flat", lastDir, name, extension)
+ flag = "." + strings.TrimPrefix(flag, "flag")
}
+ name = fmt.Sprintf("%s_%s%s%s.flat", lastDir, name, flag, extension)
out := android.PathForModuleOut(ctx, "aapt2", subDir, name)
return out
}
@@ -332,15 +333,20 @@ func aapt2ExtractExtraPackages(ctx android.ModuleContext, out android.WritablePa
var aapt2ConvertRule = pctx.AndroidStaticRule("aapt2Convert",
blueprint.RuleParams{
- Command: `${config.Aapt2Cmd} convert --enable-compact-entries ` +
+ Command: `${config.Aapt2Cmd} convert $flags ` +
`--output-format $format $in -o $out`,
CommandDeps: []string{"${config.Aapt2Cmd}"},
- }, "format",
+ }, "format", "flags",
)
// Converts xml files and resource tables (resources.arsc) in the given jar/apk file to a proto
// format. The proto definition is available at frameworks/base/tools/aapt2/Resources.proto.
func aapt2Convert(ctx android.ModuleContext, out android.WritablePath, in android.Path, format string) {
+ extraFlags := []string{"--enable-compact-entries"}
+ if ctx.Config().ReleaseUseSparseEncoding() {
+ extraFlags = append(extraFlags, "--enable-sparse-encoding")
+ }
+
ctx.Build(pctx, android.BuildParams{
Rule: aapt2ConvertRule,
Input: in,
@@ -348,6 +354,7 @@ func aapt2Convert(ctx android.ModuleContext, out android.WritablePath, in androi
Description: "convert to " + format,
Args: map[string]string{
"format": format,
+ "flags": strings.Join(extraFlags, " "),
},
})
}