# 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/config/coverage/coverage.gni")
import("//build/config/rust.gni")

config("default_coverage") {
  if (use_clang_coverage) {
    ldflags = []
    if (!is_win) {
      # Windows directly calls link.exe instead of the compiler driver when
      # linking, and embeds the path to the profile runtime library as
      # dependent library into each object file.
      ldflags += [ "-fprofile-instr-generate" ]
    }

    cflags = [
      "-fprofile-instr-generate",
      "-fcoverage-mapping",

      # Following experimental flags removes unused header functions from the
      # coverage mapping data embedded in the test binaries, and the reduction
      # of binary size enables building Chrome's large unit test targets on
      # MacOS. Please refer to crbug.com/796290 for more details.
      "-mllvm",
      "-limited-coverage-experimental=true",
    ]

    # Rust coverage is gated on using the Chromium-built Rust toolchain as it
    # needs to have a compatible LLVM version with the C++ compiler and the LLVM
    # tools that will be used to process the coverage output. This is because
    # the coverage file format is not stable.
    if (use_chromium_rust_toolchain) {
      rustflags = [ "-Cinstrument-coverage" ]
    }

    if (is_linux || is_chromeos) {
      # TODO(crbug.com/1194301): Remove this flag.
      cflags += [ "-fno-use-cxa-atexit" ]
    }
  }
}
