• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2012 Google Inc. All rights reserved.
2#
3# Redistribution and use in source and binary forms, with or without
4# modification, are permitted provided that the following conditions are
5# met:
6#
7#     * Redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer.
9#     * Redistributions in binary form must reproduce the above
10# copyright notice, this list of conditions and the following disclaimer
11# in the documentation and/or other materials provided with the
12# distribution.
13#     * Neither the name of Google Inc. nor the names of its
14# contributors may be used to endorse or promote products derived from
15# this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28{
29  'includes': [
30    '../build/win/precompile.gypi',
31    '../build/features.gypi',
32    'wtf.gypi',
33  ],
34  'conditions': [
35    ['gcc_version>=46', {
36      'target_defaults': {
37        # Disable warnings about c++0x compatibility, as some names (such as nullptr) conflict
38        # with upcoming c++0x types.
39        'cflags_cc': ['-Wno-c++0x-compat'],
40      },
41    }],
42  ],
43  'targets': [
44    {
45      # This target sets up defines and includes that are required by WTF and
46      # its dependents.
47      'target_name': 'wtf_config',
48      'type': 'none',
49      'direct_dependent_settings': {
50        'defines': [
51          # Import features_defines from features.gypi
52          '<@(feature_defines)',
53        ],
54        'conditions': [
55          ['OS=="win"', {
56            'defines': [
57              '__STD_C',
58              '_CRT_SECURE_NO_DEPRECATE',
59              '_SCL_SECURE_NO_DEPRECATE',
60              'CRASH=__debugbreak',
61            ],
62            'include_dirs': [
63              'os-win32',
64            ],
65          }],
66        ],
67      },
68    },
69    {
70      'target_name': 'wtf',
71      'type': '<(component)',
72      'include_dirs': [
73        '..',
74      ],
75      'dependencies': [
76          'wtf_config',
77          '../config.gyp:config',
78          '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
79          '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
80      ],
81      'sources': [
82        '<@(wtf_files)',
83      ],
84      'defines': [
85        'WTF_IMPLEMENTATION=1',
86      ],
87      'direct_dependent_settings': {
88        'include_dirs': [
89          '..',
90        ],
91        # Some warnings occur in WTF headers, so they must also be disabled
92        # in targets that use WTF.
93        'msvs_disabled_warnings': [
94          # Don't complain about calling specific versions of templatized
95          # functions (e.g. in RefPtrHashMap.h).
96          4344,
97          # Don't complain about using "this" in an initializer list
98          # (e.g. in StringImpl.h).
99          4355,
100          # Disable c4267 warnings until we fix size_t to int truncations.
101          4267,
102        ],
103      },
104      'export_dependent_settings': [
105        'wtf_config',
106        '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
107        '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
108      ],
109      # Disable c4267 warnings until we fix size_t to int truncations.
110      'msvs_disabled_warnings': [4127, 4355, 4510, 4512, 4610, 4706, 4068, 4267],
111      'conditions': [
112        ['OS=="android"', {
113          'link_settings': {
114            'libraries': [
115              '-llog',
116            ]
117          }
118        }],
119        ['OS=="win"', {
120          'sources/': [
121            ['exclude', 'ThreadIdentifierDataPthreads\\.(h|cpp)$'],
122            ['exclude', 'ThreadingPthreads\\.cpp$'],
123          ],
124          'include_dirs!': [
125            '<(SHARED_INTERMEDIATE_DIR)/blink',
126          ],
127          'conditions': [
128            ['component=="shared_library"', {
129              # Chromium windows multi-dll build enables C++ exception and this
130              # causes wtf to generate 4291 warning due to operator new/delete
131              # implementations. Disable the warning for chromium windows
132              # multi-dll build.
133              'msvs_disabled_warnings': [4291],
134              'direct_dependent_settings': {
135                'msvs_disabled_warnings': [4291],
136              },
137            }],
138          ],
139        }, { # OS!="win"
140          'sources/': [
141            ['exclude', 'Win\\.cpp$'],
142          ],
143        }],
144        ['OS=="mac"', {
145          'link_settings': {
146            'libraries': [
147              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
148              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
149            ]
150          }
151        }, { # OS!="mac"
152          'sources/': [
153            ['exclude', 'CF\\.cpp$'],
154            ['exclude', 'Mac\\.mm$'],
155            # mac is the only OS that uses WebKit's copy of TCMalloc.
156            ['exclude', 'TC.*\\.(cpp|h)$'],
157          ],
158        }],
159      ],
160    },
161  ]
162}
163