Warn more clearly when there are duplicate copied headers
When more than one makefile tries to copy a header to the same destination, the warning is not clear, and hard to track down and assign blame: build/core/copy_headers.mk:15: warning: ignoring old commands for target `out/target/product/bullhead/obj/include/qcom/display/copybit.h' With this change, the same behavior is kept, but the warning message is more descriptive, and contains the offending Android.mk files: build/core/Makefile:54: Duplicate header copy: out/target/product/bullhead/obj/include/qcom/display/copybit.h build/core/Makefile:54: Defined in: hardware/qcom/display/msm8994/libcopybit/Android.mk hardware/qcom/display/msm8994/libcopybit/Android.mk In this case, a $(CLEAR_VARS) is missing, so the same Android.mk file is copying the same headers twice. Bug: 27302058 Change-Id: Icf8f580ae71a78741db21c1d8f3213424459e637
This commit is contained in:
parent
622179a175
commit
6f60f020d7
|
@ -46,6 +46,20 @@ $(foreach cf,$(unique_product_copy_files_pairs), \
|
|||
unique_product_copy_files_pairs :=
|
||||
unique_product_copy_files_destinations :=
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Define rules to copy headers defined in copy_headers.mk
|
||||
# If more than one makefile declared a header, print a warning,
|
||||
# then copy the last one defined. This matches the previous make
|
||||
# behavior.
|
||||
$(foreach dest,$(ALL_COPIED_HEADERS), \
|
||||
$(eval _srcs := $(ALL_COPIED_HEADERS.$(dest).SRC)) \
|
||||
$(eval _src := $(word $(words $(_srcs)),$(_srcs))) \
|
||||
$(if $(call streq,$(_src),$(_srcs)),, \
|
||||
$(warning Duplicate header copy: $(dest)) \
|
||||
$(warning Defined in: $(ALL_COPIED_HEADERS.$(dest).MAKEFILE))) \
|
||||
$(eval $(call copy-one-header,$(_src),$(dest))))
|
||||
all_copied_headers: $(ALL_COPIED_HEADERS)
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# docs/index.html
|
||||
ifeq (,$(TARGET_BUILD_APPS))
|
||||
|
@ -468,7 +482,6 @@ endif
|
|||
# the ramdisk
|
||||
INTERNAL_RAMDISK_FILES := $(filter $(TARGET_ROOT_OUT)/%, \
|
||||
$(ALL_PREBUILT) \
|
||||
$(ALL_COPIED_HEADERS) \
|
||||
$(ALL_GENERATED_SOURCES) \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||
|
||||
|
@ -1032,7 +1045,6 @@ PDK_FUSION_SYSIMG_FILES := \
|
|||
|
||||
INTERNAL_SYSTEMIMAGE_FILES := $(filter $(TARGET_OUT)/%, \
|
||||
$(ALL_PREBUILT) \
|
||||
$(ALL_COPIED_HEADERS) \
|
||||
$(ALL_GENERATED_SOURCES) \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) \
|
||||
$(PDK_FUSION_SYSIMG_FILES) \
|
||||
|
@ -1949,7 +1961,6 @@ ATREE_FILES :=
|
|||
ifeq ($(strip $(ATREE_FILES)),)
|
||||
ATREE_FILES := \
|
||||
$(ALL_PREBUILT) \
|
||||
$(ALL_COPIED_HEADERS) \
|
||||
$(ALL_DEFAULT_INSTALLED_MODULES) \
|
||||
$(INSTALLED_RAMDISK_TARGET) \
|
||||
$(ALL_DOCS) \
|
||||
|
|
|
@ -18,8 +18,10 @@ $(foreach header,$(LOCAL_COPY_HEADERS), \
|
|||
$(if $(LOCAL_COPY_HEADERS_TO),\
|
||||
$($(my_prefix)OUT_HEADERS)/$(LOCAL_COPY_HEADERS_TO)/$(notdir $(header)),\
|
||||
$($(my_prefix)OUT_HEADERS)/$(notdir $(header)))) \
|
||||
$(eval $(call copy-one-header,$(_chFrom),$(_chTo))) \
|
||||
$(eval all_copied_headers: $(_chTo)) \
|
||||
$(eval ALL_COPIED_HEADERS.$(_chTo).MAKEFILE += $(LOCAL_MODULE_MAKEFILE)) \
|
||||
$(eval ALL_COPIED_HEADERS.$(_chTo).SRC += $(_chFrom)) \
|
||||
$(if $(filter $(_chTo),$(ALL_COPIED_HEADERS)),, \
|
||||
$(eval ALL_COPIED_HEADERS += $(_chTo))) \
|
||||
)
|
||||
_chFrom :=
|
||||
_chTo :=
|
||||
|
|
Loading…
Reference in New Issue