To enable building with coverage, the environment variable NATIVE_COVERAGE must be set to true. Set `LOCAL_NATIVE_COVERAGE := true` to generate coverage information for a given component. This is currently not supported for clang (b/17574078, b/17583330). If static library A is included in a binary B (dynamic or static executable, or shared library), and A is built with coverage information, B is required to link with libgcov.a. Since the make does not offer a good way to track this dependency, link libgcov.a even if LOCAL_NATIVE_COVERAGE is not set (but still guarded by NATIVE_COVERAGE). This ensures that all of the libgcov dependencies will always be resolved, and causes no change in the resulting binary if coverage is not used. Bug: 10134489 Change-Id: Id5a19f2c215e4be80e6eae27ecc19b582f2f6813
45 lines
1.3 KiB
Makefile
45 lines
1.3 KiB
Makefile
#######################################################
|
|
## Shared definitions for all target test compilations.
|
|
#######################################################
|
|
|
|
LOCAL_CFLAGS += -DGTEST_OS_LINUX_ANDROID -DGTEST_HAS_STD_STRING
|
|
|
|
LOCAL_C_INCLUDES += external/gtest/include
|
|
|
|
my_test_libcxx := false
|
|
ifndef LOCAL_SDK_VERSION
|
|
ifeq (,$(TARGET_BUILD_APPS))
|
|
ifeq ($(strip $(LOCAL_CXX_STL)),libc++)
|
|
my_test_libcxx := true
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(my_test_libcxx),true)
|
|
LOCAL_STATIC_LIBRARIES += libgtest_libc++ libgtest_main_libc++
|
|
else
|
|
LOCAL_STATIC_LIBRARIES += libgtest libgtest_main
|
|
|
|
ifndef LOCAL_SDK_VERSION
|
|
LOCAL_C_INCLUDES += bionic \
|
|
bionic/libstdc++/include \
|
|
external/stlport/stlport
|
|
LOCAL_SHARED_LIBRARIES += libstlport libstdc++
|
|
endif
|
|
endif
|
|
|
|
ifdef LOCAL_MODULE_PATH
|
|
$(error $(LOCAL_PATH): Do not set LOCAL_MODULE_PATH when building test $(LOCAL_MODULE))
|
|
endif
|
|
|
|
ifdef LOCAL_MODULE_PATH_32
|
|
$(error $(LOCAL_PATH): Do not set LOCAL_MODULE_PATH_32 when building test $(LOCAL_MODULE))
|
|
endif
|
|
|
|
ifdef LOCAL_MODULE_PATH_64
|
|
$(error $(LOCAL_PATH): Do not set LOCAL_MODULE_PATH_64 when building test $(LOCAL_MODULE))
|
|
endif
|
|
|
|
LOCAL_MODULE_PATH_64 := $(TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE)
|
|
LOCAL_MODULE_PATH_32 := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS)/$(LOCAL_MODULE)
|