platform_build_soong/android
Dan Willemsen 581341d4f2 Native Coverage support in Soong (gcov)
This is configured the same as make -- a global NATIVE_COVERAGE=true
flag to allow native coverage, then COVERAGE_PATHS=path1,path2,... to
turn it on for certain paths.

There are .gcnodir files exported to Make and saved in $OUT/coverage/...
files which are `ar` archives containing all of the compiler-produced
.gcno files for a particular executable / shared library.

Unlike the Make implementation, this only passes links the helper
library (automatically through --coverage) when one of the object files
or static libraries being used actually has coverage enabled.

Host support is currently disabled, since we set -nodefaultlibs, which
prevents libclang_rt.profile-*.a from being picked up automatically.

Bug: 32749731
Test: NATIVE_COVERAGE=true COVERAGE_PATHS=system/core/libcutils m -j libbacktrace libutils tombstoned
      $OUT/coverage/system/lib*/libcutils.gcnodir looks correct (self)
      $OUT/coverage/system/lib*/libbacktrace.gcnodir looks correct (static)
      $OUT/coverage/system/lib*/libutils.gcnodir doesn't exist (shared)
      $OUT/coverage/system/bin/tombstoned.gcnodir looks correct (executable)
Test: NATIVE_COVERAGE=true COVERAGE_PATHS=external/libcxxabi m -j libc++
      Confirm that $OUT/coverage/system/lib*/libc++.gcnodir looks correct (whole_static_libs)
Change-Id: I48aaa0ba8d76e50e9c2d1151421c0c6dc8ed79a9
2017-02-14 13:05:48 -08:00
..
androidmk.go Added phony module type for soong. 2017-02-06 22:23:19 -08:00
arch.go Do not duplicate arch properties when cpu variant == arch variant 2016-12-20 09:53:14 -08:00
config.go Native Coverage support in Soong (gcov) 2017-02-14 13:05:48 -08:00
defaults.go Add a Name property 2016-10-12 17:24:49 -07:00
defs.go Add a "license" property to ndk_headers. 2016-10-20 13:30:07 -07:00
env.go Add support for CMakefile generation 2017-02-07 09:43:02 -08:00
expand.go genrule: expand $$ to $$ 2016-11-22 15:41:08 -08:00
expand_test.go genrule: expand $$ to $$ 2016-11-22 15:41:08 -08:00
hooks.go Replace PropertyCustomizer with hooks 2016-09-13 17:37:32 -07:00
makevars.go Move registration into android package 2016-10-12 14:30:44 -07:00
module.go Added phony module type for soong. 2017-02-06 22:23:19 -08:00
mutator.go Fall back to prebuilts if source modules are disabled 2016-11-30 13:09:45 -08:00
onceper.go Add DeviceConfig and OncePer objects 2016-08-17 16:39:06 -07:00
package_ctx.go Update soong to use pathtools.FileSystem 2017-02-02 16:19:56 -08:00
paths.go Support data properties for test binaries 2017-02-02 16:23:30 -08:00
paths_test.go Rename common to android 2016-05-18 15:37:25 -07:00
prebuilt.go Fall back to prebuilts if source modules are disabled 2016-11-30 13:09:45 -08:00
prebuilt_test.go Re-enable prebuilt_test 2016-10-14 17:07:49 -07:00
register.go Add support for CMakefile generation 2017-02-07 09:43:02 -08:00
util.go Move globbing to Blueprint 2016-11-04 04:54:16 +00:00
variable.go Native Coverage support in Soong (gcov) 2017-02-14 13:05:48 -08:00