Forbid -Weverything
Use of -Weverything blocks build system changes and toolchain updates
on new warnings. Forbid it in the build system. Developers can
experiment with -Weverything on their module by adding it to their
Android.mk file and building with
m ANDROID_TEMPORARILY_ALLOW_WEVERYTHING=true
Fixes: 143713277
Test: manual
Change-Id: Ifca9ad45301b0d51f18b5ae85cfb9e5b89fbef3f
diff --git a/core/binary.mk b/core/binary.mk
index 51259b2..8392fc0 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -1441,10 +1441,10 @@
# Check if -Werror or -Wno-error is used in C compiler flags.
# Header libraries do not need cflags.
+my_all_cflags := $(my_cflags) $(my_cppflags) $(my_cflags_no_override)
ifneq (HEADER_LIBRARIES,$(LOCAL_MODULE_CLASS))
# Prebuilt modules do not need cflags.
ifeq (,$(LOCAL_PREBUILT_MODULE_FILE))
- my_all_cflags := $(my_cflags) $(my_cppflags) $(my_cflags_no_override)
# Issue warning if -Wno-error is used.
ifneq (,$(filter -Wno-error,$(my_all_cflags)))
$(eval MODULES_USING_WNO_ERROR := $(MODULES_USING_WNO_ERROR) $(LOCAL_MODULE_MAKEFILE):$(LOCAL_MODULE))
@@ -1463,6 +1463,13 @@
endif
endif
+ifneq (,$(filter -Weverything,$(my_all_cflags)))
+ ifeq (,$(ANDROID_TEMPORARILY_ALLOW_WEVERYTHING))
+ $(call pretty-error, -Weverything is not allowed in Android.mk files.\
+ Build with `m ANDROID_TEMPORARILY_ALLOW_WEVERYTHING=true` to experiment locally with -Weverything.)
+ endif
+endif
+
# Disable clang-tidy if it is not found.
ifeq ($(PATH_TO_CLANG_TIDY),)
my_tidy_enabled := false