blob: 63d5f1435ccb512e032dddc9ee51847f5b1f2472 [file] [log] [blame]
Ben Murdochc5610432016-08-08 18:44:38 +01001# Copyright 2016 the V8 project authors. All rights reserved.
2# Copyright (c) 2014 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6# This file is meant to be included to set clang-specific compiler flags.
7# To use this the following variable can be defined:
8# clang_warning_flags: list: Compiler flags to pass to clang.
9# clang_warning_flags_unset: list: Compiler flags to not pass to clang.
10#
11# Only use this in third-party code. In chromium_code, fix your code to not
12# warn instead!
13#
14# Note that the gypi file is included in target_defaults, so it does not need
15# to be explicitly included.
16#
17# Warning flags set by this will be used on all platforms. If you want to set
18# warning flags on only some platforms, you have to do so manually.
19#
20# To use this, create a gyp target with the following form:
21# {
22# 'target_name': 'my_target',
23# 'variables': {
24# 'clang_warning_flags': ['-Wno-awesome-warning'],
25# 'clang_warning_flags_unset': ['-Wpreviously-set-flag'],
26# }
27# }
28
29{
30 'variables': {
31 'clang_warning_flags_unset%': [], # Provide a default value.
32 },
33 'conditions': [
34 ['clang==1', {
35 # This uses >@ instead of @< to also see clang_warning_flags set in
36 # targets directly, not just the clang_warning_flags in target_defaults.
37 'cflags': [ '>@(clang_warning_flags)' ],
38 'cflags!': [ '>@(clang_warning_flags_unset)' ],
39 'xcode_settings': {
40 'WARNING_CFLAGS': ['>@(clang_warning_flags)'],
41 'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'],
42 },
43 'msvs_settings': {
44 'VCCLCompilerTool': {
45 'AdditionalOptions': [ '>@(clang_warning_flags)' ],
46 'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ],
47 },
48 },
49 }],
50 ['clang==0 and host_clang==1', {
51 'target_conditions': [
52 ['_toolset=="host"', {
53 'cflags': [ '>@(clang_warning_flags)' ],
54 'cflags!': [ '>@(clang_warning_flags_unset)' ],
55 }],
56 ],
57 }],
58 ],
59}