blob: 12ab03fcd0e67215cf412c9b4b06b94624176ef3 [file] [log] [blame]
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/toolchain/toolchain.gni")
# There are two ways to enable code coverage instrumentation:
# 1. When |use_clang_coverage| is true and |coverage_instrumentation_input_file|
# is empty, all source files are instrumented.
# 2. When |use_clang_coverage| is true and |coverage_instrumentation_input_file|
# is NOT empty and points to a text file on the file system, ONLY source
# files specified in the input file are instrumented.
declare_args() {
# Enable Clang's Source-based Code Coverage.
use_clang_coverage = false
# The path to the coverage instrumentation input file should be a source root
# absolute path (e.g. //out/Release/coverage_instrumentation_input.txt), and
# the file consists of multiple lines where each line represents a path to a
# source file, and the paths must be relative to the root build directory.
# e.g. ../../base/task/post_task.cc for build directory 'out/Release'.
coverage_instrumentation_input_file = ""
}
assert(!use_clang_coverage || is_clang,
"Clang Source-based Code Coverage requires clang.")
assert(coverage_instrumentation_input_file == "" || use_clang_coverage,
"Instrument a subset of source files requires enabling clang coverage.")