| # 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" ] |
| } |
| } |
| } |