summaryrefslogtreecommitdiff
path: root/android/defs.go
diff options
context:
space:
mode:
author Spandan Das <spandandas@google.com> 2025-01-22 23:25:39 +0000
committer Spandan Das <spandandas@google.com> 2025-01-22 18:00:34 -0800
commit4d78e0108b85354098811ec86307cc8d2550555f (patch)
treed8a57b8958f4c66208fa2e395f5ad59af2355553 /android/defs.go
parentb659a71ad2946fa53793019724928a1f3f6643db (diff)
Wrap the soong installation rules with /bin/bash
Switching between `m` and `m --soong-only` is currently not a null build since the command line of the install actions changes. This CL wraps the install cmds with /bin/bash to match the command line of the install actions in regular `m` builds. Switching between `m` and `m --soong-only` is still not a null build (most likely due to `kernel_version_for_uffd_gc.txt), but with this CL only a subset of the actions (buildprop and rdeps) need to be rebuilt between the switch Bug: 390471378 Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img --soong-only (only cmp of kernel_version_for_uffd_gc.txt) Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_odm_image/android_common/odm.img (copies kernel_version_for_uffd_gc.txt, runs gen_build_prop followed by build_img) Change-Id: If64af772fc6e3506310ffb9f7a0e9058befb9cfa
Diffstat (limited to 'android/defs.go')
-rw-r--r--android/defs.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/android/defs.go b/android/defs.go
index 9f3fb1ee6..4dd267a89 100644
--- a/android/defs.go
+++ b/android/defs.go
@@ -51,6 +51,14 @@ var (
},
"cpFlags", "extraCmds")
+ // A copy rule wrapped with bash.
+ CpWithBash = pctx.AndroidStaticRule("CpWithBash",
+ blueprint.RuleParams{
+ Command: "/bin/bash -c \"rm -f $out && cp $cpFlags $cpPreserveSymlinks $in $out$extraCmds\"",
+ Description: "cp $out",
+ },
+ "cpFlags", "extraCmds")
+
// A copy rule that doesn't preserve symlinks.
CpNoPreserveSymlink = pctx.AndroidStaticRule("CpNoPreserveSymlink",
blueprint.RuleParams{
@@ -74,6 +82,14 @@ var (
},
"cpFlags", "extraCmds")
+ // A copy executable rule wrapped with bash
+ CpExecutableWithBash = pctx.AndroidStaticRule("CpExecutableWithBash",
+ blueprint.RuleParams{
+ Command: "/bin/bash -c \"(rm -f $out && cp $cpFlags $cpPreserveSymlinks $in $out ) && (chmod +x $out$extraCmds )\"",
+ Description: "cp $out",
+ },
+ "cpFlags", "extraCmds")
+
// A timestamp touch rule.
Touch = pctx.AndroidStaticRule("Touch",
blueprint.RuleParams{
@@ -89,6 +105,14 @@ var (
},
"fromPath")
+ // A symlink rule wrapped with bash
+ SymlinkWithBash = pctx.AndroidStaticRule("SymlinkWithBash",
+ blueprint.RuleParams{
+ Command: "/bin/bash -c \"rm -f $out && ln -sfn $fromPath $out\"",
+ Description: "symlink $out",
+ },
+ "fromPath")
+
ErrorRule = pctx.AndroidStaticRule("Error",
blueprint.RuleParams{
Command: `echo "$error" && false`,