Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / web.gyp
1 #
2 # Copyright (C) 2011 Google Inc. All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
7 #
8 #         * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 #         * Redistributions in binary form must reproduce the above
11 # copyright notice, this list of conditions and the following disclaimer
12 # in the documentation and/or other materials provided with the
13 # distribution.
14 #         * Neither the name of Google Inc. nor the names of its
15 # contributors may be used to endorse or promote products derived from
16 # this software without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #
30
31 {
32     'includes': [
33         '../bindings/bindings.gypi',
34         '../core/core.gypi',
35         '../build/features.gypi',
36         '../build/scripts/scripts.gypi',
37         '../build/win/precompile.gypi',
38         '../modules/modules.gypi',
39         '../platform/blink_platform.gypi',
40         '../wtf/wtf.gypi',
41         'web.gypi',
42     ],
43     'targets': [
44         {
45             'target_name': 'blink_web',
46             'type': '<(component)',
47             'variables': { 'enable_wexit_time_destructors': 1, },
48             'dependencies': [
49                 '../config.gyp:config',
50                 '../platform/blink_platform.gyp:blink_common',
51                 '../core/core.gyp:webcore',
52                 '../modules/modules.gyp:modules',
53                 '<(DEPTH)/skia/skia.gyp:skia',
54                 '<(angle_path)/src/build_angle.gyp:translator',
55                 '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
56                 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
57                 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
58             ],
59             'export_dependent_settings': [
60                 '<(DEPTH)/skia/skia.gyp:skia',
61                 '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
62                 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
63                 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
64             ],
65             'include_dirs': [
66                 '<(angle_path)/include',
67                 '<(DEPTH)/third_party/skia/include/utils',
68             ],
69             'defines': [
70                 'BLINK_IMPLEMENTATION=1',
71                 'INSIDE_BLINK',
72             ],
73             'sources': [
74                 '<@(web_files)',
75             ],
76             'conditions': [
77                 ['component=="shared_library"', {
78                     'dependencies': [
79                         '../core/core.gyp:webcore_generated',
80                         '../core/core.gyp:webcore_testing',
81                         '../modules/modules.gyp:modules_testing',
82                         '../wtf/wtf_tests.gyp:wtf_unittest_helpers',
83                         '<(DEPTH)/base/base.gyp:test_support_base',
84                         '<(DEPTH)/testing/gmock.gyp:gmock',
85                         '<(DEPTH)/testing/gtest.gyp:gtest',
86                         '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
87                         '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
88                         '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
89                         '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
90                         '<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
91                         '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt',
92                         '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64',
93                         '<(DEPTH)/third_party/ots/ots.gyp:ots',
94                         '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
95                         '<(DEPTH)/url/url.gyp:url_lib',
96                         '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
97                         '<(libjpeg_gyp_path):libjpeg',
98                         # We must not add webkit_support here because of cyclic dependency.
99                     ],
100                     'export_dependent_settings': [
101                         '<(DEPTH)/url/url.gyp:url_lib',
102                         '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
103                     ],
104                     'sources': [
105                         # Compile Blink unittest files into blink_web.dll in component build mode
106                         # since there're methods that are tested but not exported.
107                         # WebUnitTests.* exports an API that runs all the unittests inside
108                         # blink_web.dll.
109                         '<@(bindings_unittest_files)',
110                         '<@(core_unittest_files)',
111                         '<@(modules_unittest_files)',
112                         # FIXME: the next line should not be needed. We prefer to run these unit tests outside blink_web.dll.
113                         '<@(platform_web_unittest_files)',
114                         '<@(web_unittest_files)',
115                         'WebTestingSupport.cpp',
116                         'tests/WebUnitTests.cpp',   # Components test runner support.
117                     ],
118                     'conditions': [
119                         ['OS=="win" or OS=="mac"', {
120                             'dependencies': [
121                                 '<(DEPTH)/third_party/nss/nss.gyp:*',
122                             ],
123                         }],
124                         ['clang==1', {
125                             # FIXME: It would be nice to enable this in shared builds too,
126                             # but the test files have global constructors from the GTEST macro
127                             # and we pull in the test files into the blink_web target in the
128                             # shared build.
129                             'cflags!': ['-Wglobal-constructors'],
130                             'xcode_settings': {
131                               'WARNING_CFLAGS!': ['-Wglobal-constructors'],
132                             },
133                         }],
134                     ],
135                     'msvs_settings': {
136                       'VCLinkerTool': {
137                         'conditions': [
138                           ['incremental_chrome_dll==1', {
139                             'UseLibraryDependencyInputs': "true",
140                           }],
141                         ],
142                       },
143                     },
144                 }],
145                 ['OS == "linux"', {
146                     'dependencies': [
147                         '<(DEPTH)/build/linux/system.gyp:fontconfig',
148                     ],
149                 }, {
150                     'sources/': [
151                         ['exclude', 'linux/'],
152                     ],
153                 }],
154                 ['use_x11 == 1', {
155                     'dependencies': [
156                         '<(DEPTH)/build/linux/system.gyp:x11',
157                     ],
158                 }, {
159                     'sources/': [
160                         ['exclude', 'x11/'],
161                     ]
162                 }],
163                 ['OS!="android"', {
164                     'sources/': [
165                         ['exclude', 'WebInputEventFactoryAndroid.cpp$'],
166                     ],
167                 }],
168                 ['OS=="mac"', {
169                     'link_settings': {
170                         'libraries': [
171                             '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
172                             '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
173                         ],
174                     },
175                 }, { # else: OS!="mac"
176                     'sources/': [
177                         ['exclude', 'WebInputEventFactoryMac.mm$'],
178                         ['exclude', 'mac/WebScrollbarTheme.cpp$'],
179                     ],
180                 }],
181                 ['OS!="win"', {
182                     'sources/': [
183                         ['exclude', 'WebInputEventFactoryWin.cpp$'],
184                     ],
185                 }],
186                 ['use_default_render_theme==0', {
187                     'sources/': [
188                         ['exclude', 'default/WebRenderTheme.cpp'],
189                     ],
190                 }],
191             ],
192             'direct_dependent_settings': {
193                 'include_dirs': [
194                     '../../',
195                 ],
196             },
197             'target_conditions': [
198                 ['OS=="android"', {
199                     'sources/': [
200                         ['include', '^linux/WebFontRendering\\.cpp$'],
201                     ],
202                 }],
203             ],
204             'actions': [
205                 {
206                     'action_name': 'PickerCommon',
207                     'process_outputs_as_sources': 1,
208                     'variables': {
209                         'resources': [
210                             'resources/pickerCommon.css',
211                             'resources/pickerCommon.js',
212                         ],
213                     },
214                     'inputs': [
215                         'scripts/make-file-arrays.py',
216                         '<@(resources)',
217                     ],
218                     'outputs': [
219                         '<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.h',
220                         '<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.cpp',
221                         ],
222                     'action': [
223                         'python',
224                         'scripts/make-file-arrays.py',
225                         '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.h',
226                         '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.cpp',
227                         '<@(resources)',
228                     ],
229                 },
230                 {
231                     'action_name': 'CalendarPicker',
232                     'process_outputs_as_sources': 1,
233                     'variables': {
234                         'resources': [
235                             'resources/calendarPicker.css',
236                             'resources/calendarPicker.js',
237                             'resources/pickerButton.css',
238                             'resources/suggestionPicker.css',
239                             'resources/suggestionPicker.js',
240                         ],
241                     },
242                     'inputs': [
243                         'scripts/make-file-arrays.py',
244                         '<@(resources)'
245                     ],
246                     'outputs': [
247                         '<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.h',
248                         '<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.cpp',
249                     ],
250                     'action': [
251                         'python',
252                         'scripts/make-file-arrays.py',
253                         '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.h',
254                         '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.cpp',
255                         '<@(resources)',
256                     ],
257                },
258                 {
259                     'action_name': 'ColorSuggestionPicker',
260                     'process_outputs_as_sources': 1,
261                     'variables': {
262                         'resources': [
263                             'resources/colorSuggestionPicker.css',
264                             'resources/colorSuggestionPicker.js',
265                         ],
266                     },
267                     'inputs': [
268                         'scripts/make-file-arrays.py',
269                         '<@(resources)',
270                     ],
271                     'outputs': [
272                         '<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.h',
273                         '<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.cpp',
274                     ],
275                     'action': [
276                         'python',
277                         'scripts/make-file-arrays.py',
278                         '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.h',
279                         '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.cpp',
280                         '<@(resources)',
281                     ],
282                 },
283             ],
284         },
285         {
286             'target_name': 'webkit_test_support',
287             'conditions': [
288                 ['component=="shared_library"', {
289                     'type': 'none',
290                 }, {
291                     'type': 'static_library',
292                     'dependencies': [
293                         '../config.gyp:config',
294                         '../core/core.gyp:webcore_testing',
295                         '../modules/modules.gyp:modules_testing',
296                         '../wtf/wtf.gyp:wtf',
297                         '<(DEPTH)/skia/skia.gyp:skia',
298                     ],
299                     'include_dirs': [
300                         '../../',
301                     ],
302                     'sources': [
303                         'WebTestingSupport.cpp',
304                     ],
305                 }],
306             ],
307         },
308     ], # targets
309     'conditions': [
310         ['gcc_version>=46', {
311             'target_defaults': {
312                 # Disable warnings about c++0x compatibility, as some names (such
313                 # as nullptr) conflict with upcoming c++0x types.
314                 'cflags_cc': ['-Wno-c++0x-compat'],
315             },
316         }],
317         ['OS=="mac"', {
318             'targets': [
319                 {
320                     'target_name': 'copy_mesa',
321                     'type': 'none',
322                     'dependencies': ['<(DEPTH)/third_party/mesa/mesa.gyp:osmesa'],
323                     'copies': [{
324                         'destination': '<(PRODUCT_DIR)/DumpRenderTree.app/Contents/MacOS/',
325                         'files': ['<(PRODUCT_DIR)/osmesa.so'],
326                     }],
327                 },
328             ],
329         }],
330         ['clang==1', {
331             'target_defaults': {
332                 'cflags': ['-Wglobal-constructors'],
333                 'xcode_settings': {
334                     'WARNING_CFLAGS': ['-Wglobal-constructors'],
335                 },
336             },
337         }],
338     ], # conditions
339 }