Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: Source/bindings/bindings.gyp

Issue 14110002: Introduce bindings.gyp (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address Nico's comments Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # 1 #
2 # Copyright (C) 2013 Google Inc. All rights reserved. 2 # Copyright (C) 2013 Google Inc. All rights reserved.
3 # 3 #
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 13 matching lines...) Expand all
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 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. 28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 # 29 #
30 30
31 { 31 {
32 'includes': [ 32 'includes': [
33 '../WebKit/chromium/WinPrecompile.gypi', 33 '../WebKit/chromium/WinPrecompile.gypi',
34 '../WebKit/chromium/features.gypi',
35 '../core/core.gypi',
36 '../modules/modules.gypi',
37 'bindings.gypi', 34 'bindings.gypi',
38 ], 35 ],
39
40 'variables': {
41 # If set to 1, doesn't compile debug symbols into webcore reducing the
42 # size of the binary and increasing the speed of gdb. gcc only.
43 'remove_webcore_debug_symbols%': 0,
44
45 'bindings_idl_files': [
46 '<@(webcore_idl_files)',
47 '<@(modules_idl_files)',
48 ],
49
50 'bindings_idl_files!': [
51 # Custom bindings in bindings/v8/custom exist for these.
52 '../core/dom/EventListener.idl',
53
54 '../core/page/AbstractView.idl',
55
56 # These bindings are excluded, as they're only used through inheritance an d don't define constants that would need a constructor.
57 '../core/svg/ElementTimeControl.idl',
58 '../core/svg/SVGExternalResourcesRequired.idl',
59 '../core/svg/SVGFilterPrimitiveStandardAttributes.idl',
60 '../core/svg/SVGFitToViewBox.idl',
61 '../core/svg/SVGLangSpace.idl',
62 '../core/svg/SVGLocatable.idl',
63 '../core/svg/SVGTests.idl',
64 '../core/svg/SVGTransformable.idl',
65
66 # FIXME: I don't know why these are excluded, either.
67 # Someone (me?) should figure it out and add appropriate comments.
68 '../core/css/CSSUnknownRule.idl',
69 ],
70
71 'conditions': [
72 ['enable_svg!=0', {
73 'bindings_idl_files': [
74 '<@(webcore_svg_idl_files)',
75 ],
76 }],
77 ['OS=="win" and buildtype=="Official"', {
78 # On windows official release builds, we try to preserve symbol space.
79 'derived_sources_aggregate_files': [
80 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSourcesAll.cpp',
81 ],
82 },{
83 'derived_sources_aggregate_files': [
84 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources01.cpp',
85 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources02.cpp',
86 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources03.cpp',
87 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources04.cpp',
88 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources05.cpp',
89 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources06.cpp',
90 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources07.cpp',
91 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources08.cpp',
92 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources09.cpp',
93 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources10.cpp',
94 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources11.cpp',
95 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources12.cpp',
96 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources13.cpp',
97 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources14.cpp',
98 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources15.cpp',
99 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources16.cpp',
100 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources17.cpp',
101 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources18.cpp',
102 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources19.cpp',
103 ],
104 }],
105 ],
106 },
107
108 'target_defaults': { 36 'target_defaults': {
109 'variables': { 37 'variables': {
110 'optimize': 'max', 38 'optimize': 'max',
111 }, 39 },
112 }, 40 },
113
114 'conditions': [
115 ['OS!="win" and remove_webcore_debug_symbols==1', {
116 # Remove -g from all targets defined here.
117 'target_defaults': {
118 'cflags!': ['-g'],
119 },
120 }],
121 ['os_posix==1 and OS!="mac" and gcc_version>=46', {
122 'target_defaults': {
123 # Disable warnings about c++0x compatibility, as some names (such as nul lptr) conflict
124 # with upcoming c++0x types.
125 'cflags_cc': ['-Wno-c++0x-compat'],
126 },
127 }],
128 ['OS=="linux" and target_arch=="arm"', {
129 # Due to a bug in gcc arm, we get warnings about uninitialized timesNewRom an.unstatic.3258
130 # and colorTransparent.unstatic.4879.
131 'target_defaults': {
132 'cflags': ['-Wno-uninitialized'],
133 },
134 }],
135 ['clang==1', {
136 'target_defaults': {
137 'cflags': ['-Wglobal-constructors', '-Wunused-parameter'],
138 'xcode_settings': {
139 'WARNING_CFLAGS': ['-Wglobal-constructors', '-Wunused-parameter'],
140 },
141 },
142 }],
143 ],
144 'targets': [{ 41 'targets': [{
145 'target_name': 'supplemental_dependencies',
146 'type': 'none',
147 'actions': [{
148 'action_name': 'generateSupplementalDependency',
149 'variables': {
150 # Write sources into a file, so that the action command line won't
151 # exceed OS limits.
152 'idl_files_list': '<|(idl_files_list.tmp <@(bindings_idl_files))',
153 },
154 'inputs': [
155 'scripts/preprocess-idls.pl',
156 '<(idl_files_list)',
157 '<!@(cat <(idl_files_list))',
158 ],
159 'outputs': [
160 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
161 ],
162 'msvs_cygwin_shell': 0,
163 'action': [
164 '<(perl_exe)',
165 '-w',
166 '-Iscripts',
167 '-I../core/scripts',
168 'scripts/preprocess-idls.pl',
169 '--defines',
170 '<(feature_defines)',
171 '--idlFilesList',
172 '<(idl_files_list)',
173 '--supplementalDependencyFile',
174 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
175 ],
176 'message': 'Resolving [Supplemental=XXX] dependencies in all IDL files',
177 }]
178 },
179 {
180 'target_name': 'bindings_sources',
181 'type': 'none',
182 'hard_dependency': 1,
183 'dependencies': [
184 'supplemental_dependencies',
185 ],
186 'sources': [
187 '<@(bindings_idl_files)',
188 '<@(webcore_test_support_idl_files)',
189 ],
190 'actions': [{
191 'action_name': 'derived_sources_all_in_one',
192 'inputs': [
193 '../core/core.gyp/scripts/action_derivedsourcesallinone.py',
194 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
195 ],
196 'outputs': [
197 '<@(derived_sources_aggregate_files)',
198 ],
199 'action': [
200 'python',
201 '../core/core.gyp/scripts/action_derivedsourcesallinone.py',
202 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
203 '--',
204 '<@(derived_sources_aggregate_files)',
205 ],
206 }],
207 'rules': [{
208 'rule_name': 'binding',
209 'extension': 'idl',
210 'msvs_external_rule': 1,
211 'inputs': [
212 'scripts/generate-bindings.pl',
213 'scripts/CodeGenerator.pm',
214 'scripts/CodeGeneratorV8.pm',
215 'scripts/IDLParser.pm',
216 'scripts/IDLAttributes.txt',
217 '../core/scripts/preprocessor.pm',
218 '<!@pymod_do_main(supplemental_idl_files <@(bindings_idl_files))',
219 ],
220 'outputs': [
221 # FIXME: The .cpp file should be in webkit/bindings once
222 # we coax GYP into supporting it (see 'action' below).
223 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8<(RULE_INPUT_ROOT).cpp' ,
224 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8<(RULE_INPUT_ROOT).h',
225 ],
226 'variables': {
227 'generator_include_dirs': [
228 '--include', '../modules/filesystem',
229 '--include', '../modules/indexeddb',
230 '--include', '../modules/mediasource',
231 '--include', '../modules/mediastream',
232 '--include', '../modules/navigatorcontentutils',
233 '--include', '../modules/notifications',
234 '--include', '../modules/webaudio',
235 '--include', '../modules/webdatabase',
236 '--include', '../core/css',
237 '--include', '../core/dom',
238 '--include', '../core/fileapi',
239 '--include', '../core/html',
240 '--include', '../core/page',
241 '--include', '../core/plugins',
242 '--include', '../core/storage',
243 '--include', '../core/svg',
244 '--include', '../core/testing',
245 '--include', '../core/workers',
246 '--include', '../core/xml',
247 '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit',
248 ],
249 },
250 'msvs_cygwin_shell': 0,
251 # FIXME: Note that we put the .cpp files in webcore/bindings
252 # but the .h files in webkit/bindings. This is to work around
253 # the unfortunate fact that GYP strips duplicate arguments
254 # from lists. When we have a better GYP way to suppress that
255 # behavior, change the output location.
256 'action': [
257 '<(perl_exe)',
258 '-w',
259 '-Iscripts',
260 '-I../core/scripts',
261 '<(bindings_dir)/scripts/generate-bindings.pl',
262 '--outputHeadersDir',
263 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
264 '--outputDir',
265 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings',
266 '--idlAttributesFile',
267 'scripts/IDLAttributes.txt',
268 '--defines',
269 '<(feature_defines)',
270 '<@(generator_include_dirs)',
271 '--supplementalDependencyFile',
272 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
273 '--additionalIdlFiles',
274 '<(webcore_test_support_idl_files)',
275 '<(RULE_INPUT_PATH)',
276 '<@(preprocessor)',
277 ],
278 'message': 'Generating binding from <(RULE_INPUT_PATH)',
279 }],
280 },
281 {
282 'target_name': 'bindings', 42 'target_name': 'bindings',
283 'type': 'static_library', 43 'type': 'static_library',
284 'hard_dependency': 1, 44 'hard_dependency': 1,
285 'dependencies': [ 45 'dependencies': [
286 'bindings_sources', 46 '../config.gyp:config',
287 '../core/core.gyp/core.gyp:webcore_prerequisites', 47 '../wtf/wtf.gyp:wtf',
288 '../yarr/yarr.gyp:yarr', 48 '../yarr/yarr.gyp:yarr',
289 '../wtf/wtf.gyp:wtf', 49 '../core/core.gyp/core.gyp:webcore',
290 '<(DEPTH)/build/temp_gyp/googleurl.gyp:googleurl', 50 '<(DEPTH)/build/temp_gyp/googleurl.gyp:googleurl',
291 '<(DEPTH)/skia/skia.gyp:skia', 51 '<(DEPTH)/skia/skia.gyp:skia',
292 '<(DEPTH)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg', 52 '<(DEPTH)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg',
293 '<(DEPTH)/third_party/libpng/libpng.gyp:libpng', 53 '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
294 '<(DEPTH)/third_party/libxml/libxml.gyp:libxml', 54 '<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
295 '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt', 55 '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt',
296 '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp', 56 '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
297 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', 57 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
298 '<(DEPTH)/third_party/qcms/qcms.gyp:qcms', 58 '<(DEPTH)/third_party/qcms/qcms.gyp:qcms',
299 '<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite', 59 '<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite',
300 '<(DEPTH)/third_party/v8-i18n/build/all.gyp:v8-i18n', 60 '<(DEPTH)/third_party/v8-i18n/build/all.gyp:v8-i18n',
301 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 61 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
302 '<(libjpeg_gyp_path):libjpeg', 62 '<(libjpeg_gyp_path):libjpeg',
303 ], 63 ],
304 'include_dirs': [ 64 'include_dirs': [
305 '<(INTERMEDIATE_DIR)',
306 # FIXME: Remove <(SHARED_INTERMEDIATE_DIR)/webcore when we 65 # FIXME: Remove <(SHARED_INTERMEDIATE_DIR)/webcore when we
307 # can entice gyp into letting us put both the .cpp and .h 66 # can entice gyp into letting us put both the .cpp and .h
308 # files in the same output directory. 67 # files in the same output directory.
309 '<(SHARED_INTERMEDIATE_DIR)/webcore', 68 '<(SHARED_INTERMEDIATE_DIR)/webcore',
310 '<(SHARED_INTERMEDIATE_DIR)/webkit',
311 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
312 ], 69 ],
313 'xcode_settings': { 70 'xcode_settings': {
314 # Some Mac-specific parts of WebKit won't compile without having this 71 # Some Mac-specific parts of WebKit won't compile without having this
315 # prefix header injected. 72 # prefix header injected.
316 # FIXME: make this a first-class setting. 73 # FIXME: make this a first-class setting.
317 'GCC_PREFIX_HEADER': '../core/WebCorePrefix.h', 74 'GCC_PREFIX_HEADER': '../core/WebCorePrefix.h',
318 }, 75 },
319 'direct_dependent_settings': {
320 'include_dirs': [
321 '<(SHARED_INTERMEDIATE_DIR)/webkit',
322 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
323 ],
324 },
325 'sources': [ 76 'sources': [
326 '<@(derived_sources_aggregate_files)', 77 '<@(derived_sources_aggregate_files)',
327 '<@(bindings_files)', 78 '<@(bindings_files)',
328 ], 79 ],
329 'conditions': [ 80 'conditions': [
330 ['OS=="win" and component=="shared_library"', {
331 'defines': [
332 'USING_V8_SHARED',
333 ],
334 }],
335 ['OS=="win"', { 81 ['OS=="win"', {
336 'defines': [
337 '__PRETTY_FUNCTION__=__FUNCTION__',
338 ],
339 # This is needed because Event.h in this directory is blocked 82 # This is needed because Event.h in this directory is blocked
340 # by a system header on windows. 83 # by a system header on windows.
341 'include_dirs++': ['../core/dom'], 84 'include_dirs++': ['../core/dom'],
342 'direct_dependent_settings': { 85 'direct_dependent_settings': {
343 'include_dirs+++': ['../core/dom'], 86 'include_dirs+++': ['../core/dom'],
344 }, 87 },
345 # In generated bindings code: 'switch contains default but no case'. 88 # In generated bindings code: 'switch contains default but no case'.
346 # Disable c4267 warnings until we fix size_t to int truncations. 89 # Disable c4267 warnings until we fix size_t to int truncations.
347 'msvs_disabled_warnings': [ 4065, 4267 ], 90 'msvs_disabled_warnings': [ 4065, 4267 ],
348 }], 91 }],
349 ['OS in ("linux", "android") and "WTF_USE_WEBAUDIO_IPP=1" in feature_def ines', { 92 ['OS in ("linux", "android") and "WTF_USE_WEBAUDIO_IPP=1" in feature_def ines', {
350 'cflags': [ 93 'cflags': [
351 '<!@(pkg-config --cflags-only-I ipp)', 94 '<!@(pkg-config --cflags-only-I ipp)',
352 ], 95 ],
353 }], 96 }],
354 ], 97 ],
355 }, 98 },
356 ], 99 ],
357 } 100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698