Support turning phony warnings into errors
These still default to warnings, but if a board decides to set
BOARD_BROKEN_PHONY_TARGETS := false, they'll turn into errors. More
likely I'll just be marking the broken targets as broken, then switching
the logic here to be like the dup rules warnings/errors.
Test: On a build with warnings, try <missing>, "false", and "true"
Change-Id: I041e1ff4618c4114ec43015b6c0ae1b49b36b6f8
diff --git a/ui/build/config.go b/ui/build/config.go
index c171a67..2605f5b 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -50,8 +50,10 @@
targetDevice string
targetDeviceDir string
- pdkBuild bool
- brokenDupRules bool
+ pdkBuild bool
+
+ brokenDupRules bool
+ brokenPhonyTargets bool
pathReplaced bool
}
@@ -577,6 +579,14 @@
return c.brokenDupRules
}
+func (c *configImpl) SetBuildBrokenPhonyTargets(val bool) {
+ c.brokenPhonyTargets = val
+}
+
+func (c *configImpl) BuildBrokenPhonyTargets() bool {
+ return c.brokenPhonyTargets
+}
+
func (c *configImpl) SetTargetDeviceDir(dir string) {
c.targetDeviceDir = dir
}
diff --git a/ui/build/dumpvars.go b/ui/build/dumpvars.go
index 8f9d8f2..fadf6c6 100644
--- a/ui/build/dumpvars.go
+++ b/ui/build/dumpvars.go
@@ -165,10 +165,12 @@
// Whether --werror_overriding_commands will work
"BUILD_BROKEN_DUP_RULES",
+ // Used to turn on --werror_ options in Kati
+ "BUILD_BROKEN_PHONY_TARGETS",
+
// Not used, but useful to be in the soong.log
"BUILD_BROKEN_ANDROIDMK_EXPORTS",
"BUILD_BROKEN_DUP_COPY_HEADERS",
- "BUILD_BROKEN_PHONY_TARGETS",
}, exportEnvVars...), BannerVars...)
make_vars, err := dumpMakeVars(ctx, config, config.Arguments(), allVars, true)
@@ -196,4 +198,5 @@
config.SetPdkBuild(make_vars["TARGET_BUILD_PDK"] == "true")
config.SetBuildBrokenDupRules(make_vars["BUILD_BROKEN_DUP_RULES"] == "true")
+ config.SetBuildBrokenPhonyTargets(make_vars["BUILD_BROKEN_PHONY_TARGETS"] != "false")
}
diff --git a/ui/build/kati.go b/ui/build/kati.go
index de8dbf4..b54872c 100644
--- a/ui/build/kati.go
+++ b/ui/build/kati.go
@@ -93,6 +93,10 @@
args = append(args, "--werror_overriding_commands")
}
+ if !config.BuildBrokenPhonyTargets() {
+ args = append(args, "--werror_real_to_phony", "--werror_phony_looks_real")
+ }
+
if !config.Environment().IsFalse("KATI_EMULATE_FIND") {
args = append(args, "--use_find_emulator")
}