• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2011 Google Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15{
16  'variables': {
17    'gflags_root': '<(DEPTH)/third_party/gflags',
18    'conditions': [
19      ['OS=="win"', {
20        'gflags_gen_arch_root': '<(gflags_root)/gen/win',
21      }, {
22        'gflags_gen_arch_root': '<(gflags_root)/gen/posix',
23      }],
24    ],
25  },
26  'targets': [
27    {
28      'target_name': 'gflags',
29      'type': 'static_library',
30      'include_dirs': [
31        '<(gflags_gen_arch_root)/include/private',  # For config.h
32        '<(gflags_gen_arch_root)/include',  # For configured files.
33        '<(gflags_root)/src',  # For everything else.
34      ],
35      'defines': [
36        # These macros exist so flags and symbols are properly
37        # exported when building DLLs. Since we don't build DLLs, we
38        # need to disable them.
39        'GFLAGS_DLL_DECL=',
40        'GFLAGS_DLL_DECLARE_FLAG=',
41        'GFLAGS_DLL_DEFINE_FLAG=',
42      ],
43      'direct_dependent_settings': {
44        'include_dirs': [
45          '<(gflags_gen_arch_root)/include',  # For configured files.
46          '<(gflags_root)/src',  # For everything else.
47        ],
48        'defines': [
49          'GFLAGS_DLL_DECL=',
50          'GFLAGS_DLL_DECLARE_FLAG=',
51          'GFLAGS_DLL_DEFINE_FLAG=',
52        ],
53      },
54      'sources': [
55        'src/gflags.cc',
56        'src/gflags_completions.cc',
57        'src/gflags_reporting.cc',
58      ],
59      'conditions': [
60        ['OS=="win"', {
61          'sources': [
62            'src/windows/port.cc',
63          ],
64          # Suppress warnings about WIN32_LEAN_AND_MEAN and size_t truncation.
65          'msvs_disabled_warnings': [4005, 4267],
66        }],
67        # TODO(andrew): Look into fixing this warning upstream:
68        # http://code.google.com/p/webrtc/issues/detail?id=760
69        ['OS=="win" and clang==1', {
70          'msvs_settings': {
71            'VCCLCompilerTool': {
72              'AdditionalOptions!': [
73                '-Wheader-hygiene',  # Suppress warning about using namespace.
74              ],
75              'AdditionalOptions': [
76                '-Wno-unused-local-typedef',  # Suppress unused private typedef.
77              ],
78            },
79          },
80        }],
81        ['clang==1', {
82          'cflags': ['-Wno-unused-local-typedef',],
83          'cflags!': ['-Wheader-hygiene',],
84          'xcode_settings': {
85            'WARNING_CFLAGS': ['-Wno-unused-local-typedef',],
86            'WARNING_CFLAGS!': ['-Wheader-hygiene',],
87          },
88        }],
89      ],
90    },
91  ],
92}
93