Issue warning on projects with LOCAL_CLANG set to false.

* LOCAL_CLANG_EXCEPTION_PROJECTS is the list of project prefixes.
* New warning message is detected by warn.py as high severity.

Bug: 30575506
Change-Id: I87a38b2ba6bab1d2e5e7a9d5ec9557f0e609727c
Test: build and find new warning in build.log
This commit is contained in:
Chih-Hung Hsieh 2016-08-02 14:22:06 -07:00
parent b51df6d171
commit d9cd1fafb5
3 changed files with 27 additions and 0 deletions

View File

@ -265,6 +265,13 @@ endif
ifdef LOCAL_CLANG_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
my_clang := $(strip $(LOCAL_CLANG_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)))
endif
# Issue warning if LOCAL_CLANG* is set to false and the local makefile is not found
# in the exception project list.
ifeq ($(my_clang),false)
ifeq ($(call find_in_local_clang_exception_projects,$(LOCAL_MODULE_MAKEFILE)),)
$(warning $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): warning: LOCAL_CLANG is set to false)
endif
endif
# clang is enabled by default for host builds
# enable it unless we've specifically disabled clang above

View File

@ -143,4 +143,21 @@ ifeq ($(HOST_PREFER_32_BIT),true)
FORCE_BUILD_LLVM_COMPONENTS := true
endif
# A list of projects that are allowed to set LOCAL_CLANG to false.
LOCAL_CLANG_EXCEPTION_PROJECTS := \
device/huawei/angler/ \
device/lge/bullhead/ \
external/valgrind/ \
hardware/qcom/ \
$(INTERNAL_LOCAL_CLANG_EXCEPTION_PROJECTS)
# Find $1 in the exception project list.
define find_in_local_clang_exception_projects
$(subst $(space),, \
$(foreach project,$(LOCAL_CLANG_EXCEPTION_PROJECTS), \
$(if $(filter $(project)%,$(1)),$(project)) \
) \
)
endef
include $(BUILD_SYSTEM)/clang/tidy.mk

View File

@ -74,6 +74,9 @@ warnpatterns = [
'description':'make: overriding commands/ignoring old commands',
'patterns':[r".*: warning: overriding commands for target .+",
r".*: warning: ignoring old commands for target .+"] },
{ 'category':'make', 'severity':severity.HIGH, 'members':[], 'option':'',
'description':'make: LOCAL_CLANG is false',
'patterns':[r".*: warning: LOCAL_CLANG is set to false"] },
{ 'category':'C/C++', 'severity':severity.HIGH, 'members':[], 'option':'-Wimplicit-function-declaration',
'description':'Implicit function declaration',
'patterns':[r".*: warning: implicit declaration of function .+",