# 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/config/coverage/coverage.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",
    ]

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