blob: fa0833e2a82d9c5c4ac7cd7d4659effad14be0fb [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/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" ]
}
if (using_old_compiler) {
# These compiler flags aren't supported by the older clang compiler.
cflags -= [
"-limited-coverage-experimental=true",
"-fno-use-cxa-atexit",
]
}
}
}