# Copyright 2017 The Chromium Authors # 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") if (is_fuchsia) { import("//third_party/fuchsia-gn-sdk/src/component.gni") } # There are two ways to enable code coverage instrumentation: # 1. When |use_clang_coverage| or |use_jacoco_coverage| is true and # |coverage_instrumentation_input_file| is empty, all source files or # Java class files are instrumented. # 2. When |use_clang_coverage| or |use_jacoco_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 or Java class files related to source files are instrumented. declare_args() { # Enable Clang's Source-based Code Coverage. if (is_fuchsia) { use_clang_coverage = fuchsia_code_coverage } else { use_clang_coverage = false } # Enables JaCoCo Java code coverage. use_jacoco_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'. # # NOTE that this arg will be non-op if use_clang_coverage is false. coverage_instrumentation_input_file = "" # Enables TypeScript/JavaScript code coverage. use_javascript_coverage = false } assert(!use_clang_coverage || is_clang, "Clang Source-based Code Coverage requires clang.")