Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9cd1faf authored by Chih-Hung Hsieh's avatar Chih-Hung Hsieh
Browse files

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
parent b51df6d1
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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
+17 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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 .+",