# Copyright (c) 2014 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. # This file is meant to be included to set clang-specific compiler flags. # To use this the following variable can be defined: # clang_warning_flags: list: Compiler flags to pass to clang. # clang_warning_flags_unset: list: Compiler flags to not pass to clang. # # Only use this in third-party code. In chromium_code, fix your code to not # warn instead! # # Note that the gypi file is included in target_defaults, so it does not need # to be explicitly included. # # Warning flags set by this will be used on all platforms. If you want to set # warning flags on only some platforms, you have to do so manually. # # To use this, create a gyp target with the following form: # { # 'target_name': 'my_target', # 'variables': { # 'clang_warning_flags': ['-Wno-awesome-warning'], # 'clang_warning_flags_unset': ['-Wpreviously-set-flag'], # } # } { 'variables': { 'clang_warning_flags_unset%': [], # Provide a default value. }, 'conditions': [ ['clang==1', { # This uses >@ instead of @< to also see clang_warning_flags set in # targets directly, not just the clang_warning_flags in target_defaults. 'cflags': [ '>@(clang_warning_flags)' ], 'cflags!': [ '>@(clang_warning_flags_unset)' ], 'xcode_settings': { 'WARNING_CFLAGS': ['>@(clang_warning_flags)'], 'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'], }, 'msvs_settings': { 'VCCLCompilerTool': { 'AdditionalOptions': [ '>@(clang_warning_flags)' ], 'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ], }, }, }], ['clang==0 and host_clang==1', { 'target_conditions': [ ['_toolset=="host"', { 'cflags': [ '>@(clang_warning_flags)' ], 'cflags!': [ '>@(clang_warning_flags_unset)' ], }], ], }], ], }