[Chromium] ImageDiff should be build for host on Android
[WebKit-https.git] / Source / WTF / WTF.gyp / WTF.gyp
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     '../../WebKit/chromium/WinPrecompile.gypi',
31     '../../WebKit/chromium/features.gypi',
32     '../WTF.gypi',
33   ],
34   'variables': {
35     # Location of the chromium src directory.
36     'conditions': [
37       ['inside_chromium_build==0', {
38         # Webkit is being built outside of the full chromium project.
39         'chromium_src_dir': '../../WebKit/chromium',
40       },{
41         # WebKit is checked out in src/chromium/third_party/WebKit
42         'chromium_src_dir': '../../../../..',
43       }],
44     ],
45   },
46   'conditions': [
47     ['os_posix == 1 and OS != "mac" and OS != "android" and gcc_version==46', {
48       'target_defaults': {
49         # Disable warnings about c++0x compatibility, as some names (such as nullptr) conflict
50         # with upcoming c++0x types.
51         'cflags_cc': ['-Wno-c++0x-compat'],
52       },
53     }],
54   ],
55   'targets': [
56     {
57       # This target sets up defines and includes that are required by WTF and
58       # its dependents.
59       'target_name': 'wtf_config',
60       'type': 'none',
61       'direct_dependent_settings': {
62         'defines': [
63           # Import features_defines from features.gypi
64           '<@(feature_defines)',
65
66           # Turns on #if PLATFORM(CHROMIUM)
67           'BUILDING_CHROMIUM__=1',
68           # Controls wtf/FastMalloc
69           # FIXME: consider moving into config.h
70           'USE_SYSTEM_MALLOC=1',
71         ],
72         'conditions': [
73           ['OS=="win"', {
74             'defines': [
75               '__STD_C',
76               '_CRT_SECURE_NO_DEPRECATE',
77               '_SCL_SECURE_NO_DEPRECATE',
78               'CRASH=__debugbreak',
79             ],
80             'include_dirs': [
81               '../../JavaScriptCore/os-win32',
82             ],
83           }],
84           ['OS=="mac"', {
85             'defines': [
86               # Use USE_NEW_THEME on Mac.
87               'WTF_USE_NEW_THEME=1',
88             ],
89           }],
90           ['os_posix == 1 and OS != "mac"', {
91             'defines': [
92               'WTF_USE_PTHREADS=1',
93             ],
94           }],
95         ],
96       },
97       'conditions': [
98         ['OS=="android" and android_build_type==0', {
99           # Android builds ImageDiff for host, which has a dependency on wtf.
100           # That means we need to build this target for both host and target.
101           'toolsets': ['host', 'target'],
102         }],
103       ]
104     },
105     {
106       'target_name': 'wtf',
107       'type': 'static_library',
108       'include_dirs': [
109         '../',
110         '../../JavaScriptCore',
111         '../wtf',
112         '../wtf/unicode',
113       ],
114       'dependencies': [
115           'wtf_config',
116           '<(chromium_src_dir)/third_party/icu/icu.gyp:icui18n',
117           '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
118       ],
119       'sources': [
120         '<@(wtf_privateheader_files)',
121         '<@(wtf_files)',
122       ],
123       'sources/': [
124         # FIXME: This is clearly not sustainable.
125         ['exclude', '../wtf/efl'],
126         ['exclude', '../wtf/gobject'],
127         ['exclude', '../wtf/gtk'],
128         ['exclude', '../wtf/mac'],
129         ['exclude', '../wtf/qt'],
130         ['exclude', '../wtf/url'],
131         ['exclude', '../wtf/wince'],
132         ['exclude', '../wtf/wx'],
133         ['exclude', '../wtf/unicode/wince'],
134         ['exclude', '../wtf/unicode/glib'],
135         ['exclude', '../wtf/unicode/qt4'],
136         # GLib/GTK, even though its name doesn't really indicate.
137         ['exclude', '/(gtk|glib|gobject)/.*\\.(cpp|h)$'],
138         ['exclude', '(Default|Gtk|Mac|None|Qt|Win|Wx|Efl|Symbian)\\.(cpp|mm)$'],
139         ['exclude', 'wtf/OSRandomSource\\.cpp$'],
140         ['exclude', 'wtf/MainThread.cpp$'],
141         ['exclude', 'wtf/TC.*\\.(cpp|h)$'],
142       ],
143       'direct_dependent_settings': {
144         'include_dirs': [
145           '../',
146           # FIXME: This is too broad, but is needed for runtime/JSExportMacros.h and yarr.
147           '../../JavaScriptCore',
148         ],
149         # Some warnings occur in JSC headers, so they must also be disabled
150         # in targets that use JSC.
151         'msvs_disabled_warnings': [
152           # Don't complain about calling specific versions of templatized
153           # functions (e.g. in RefPtrHashMap.h).
154           4344,
155           # Don't complain about using "this" in an initializer list
156           # (e.g. in StringImpl.h).
157           4355,
158         ],
159       },
160       'export_dependent_settings': [
161         'wtf_config',
162         '<(chromium_src_dir)/third_party/icu/icu.gyp:icui18n',
163         '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
164       ],
165       'msvs_disabled_warnings': [4127, 4355, 4510, 4512, 4610, 4706],
166       'conditions': [
167         ['OS=="win"', {
168           'sources/': [
169             ['exclude', 'ThreadIdentifierDataPthreads\\.(h|cpp)$'],
170             ['exclude', 'ThreadingPthreads\\.cpp$'],
171             ['include', 'Thread(ing|Specific)Win\\.cpp$'],
172             ['exclude', 'OSAllocatorPosix\\.cpp$'],
173             ['include', 'OSAllocatorWin\\.cpp$'],
174             ['include', 'win/OwnPtrWin\\.cpp$'],
175           ],
176           'include_dirs!': [
177             '<(SHARED_INTERMEDIATE_DIR)/webkit',
178           ],
179           'conditions': [
180             ['inside_chromium_build==1 and component=="shared_library"', {
181               # Chromium windows multi-dll build enables c++ exception and this
182               # causes wtf generates 4291 warning due to operator new/delete
183               # implementations. Disable the warning for chromium windows
184               # multi-dll build.
185               'msvs_disabled_warnings': [4291],
186               'direct_dependent_settings': {
187                 'msvs_disabled_warnings': [4291],
188               },
189             }],
190           ],
191         }],
192         ['OS=="android" and android_build_type==0', {
193           # Android builds ImageDiff for host, which has a dependency on wtf.
194           # That means we need to build this target for both host and target.
195           'toolsets': ['host', 'target'],
196         }],
197       ],
198     },
199   ]
200 }