summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/build/config/coverage/coverage.gni
blob: b0e01c1d4ee38ad047a97337005f73500fe72a74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 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")
if (is_fuchsia) {
  import("//third_party/fuchsia-sdk/sdk/build/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 = ""
}

assert(!use_clang_coverage || is_clang,
       "Clang Source-based Code Coverage requires clang.")