forked from openkylin/platform_build
Support gcno packaging for executables.
Adapt the gcno packaging logic from shared_library_internal.mk for the case of executable binaries so that gcov artifacts are properly packaged. Test: lunch walleye_coverage-userdebug && make -j60 Bug: 67998360 Change-Id: I4994fc21521c91d4c18bdf326be079beda1914a4
This commit is contained in:
parent
dcd46870f2
commit
14827f2a98
|
@ -76,4 +76,39 @@ $(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries
|
|||
$(PRIVATE_POST_LINK_CMD)
|
||||
endif
|
||||
|
||||
ifeq ($(my_native_coverage),true)
|
||||
gcno_suffix := .gcnodir
|
||||
|
||||
built_whole_gcno_libraries := \
|
||||
$(foreach lib,$(my_whole_static_libraries), \
|
||||
$(call intermediates-dir-for, \
|
||||
STATIC_LIBRARIES,$(lib),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX), \
|
||||
$(my_host_cross))/$(lib)$(gcno_suffix))
|
||||
|
||||
built_static_gcno_libraries := \
|
||||
$(foreach lib,$(my_static_libraries), \
|
||||
$(call intermediates-dir-for, \
|
||||
STATIC_LIBRARIES,$(lib),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX), \
|
||||
$(my_host_cross))/$(lib)$(gcno_suffix))
|
||||
|
||||
ifdef LOCAL_IS_HOST_MODULE
|
||||
my_coverage_path := $($(my_prefix)OUT_COVERAGE)/$(patsubst $($(my_prefix)OUT)/%,%,$(my_module_path))
|
||||
else
|
||||
my_coverage_path := $(TARGET_OUT_COVERAGE)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path))
|
||||
endif
|
||||
|
||||
GCNO_ARCHIVE := $(my_installed_module_stem)$(gcno_suffix)
|
||||
|
||||
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS := $(strip $(LOCAL_GCNO_FILES))
|
||||
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES := $(strip $(built_whole_gcno_libraries)) $(strip $(built_static_gcno_libraries))
|
||||
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_INTERMEDIATES_DIR := $(intermediates)
|
||||
$(intermediates)/$(GCNO_ARCHIVE) : $(LOCAL_GCNO_FILES) $(built_whole_gcno_libraries) $(built_static_gcno_libraries)
|
||||
$(transform-o-to-static-lib)
|
||||
|
||||
$(my_coverage_path)/$(GCNO_ARCHIVE) : $(intermediates)/$(GCNO_ARCHIVE)
|
||||
$(copy-file-to-target)
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(my_coverage_path)/$(GCNO_ARCHIVE)
|
||||
endif
|
||||
|
||||
endif # skip_build_from_source
|
||||
|
|
Loading…
Reference in New Issue