Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # | |
| 2 # Copyright (C) 2013 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': [ | |
|
Nico
2013/04/11 05:56:37
Do you want '../../WebKit/chromium/WinPrecompile.g
abarth-chromium
2013/04/11 06:25:17
Yes, sorry. I missed that.
| |
| 33 '../WebKit/chromium/features.gypi', | |
| 34 '../WebCore/WebCore.gypi', | |
| 35 'bindings.gypi', | |
| 36 ], | |
| 37 | |
| 38 'variables': { | |
| 39 # If set to 1, doesn't compile debug symbols into webcore reducing the | |
| 40 # size of the binary and increasing the speed of gdb. gcc only. | |
| 41 'remove_webcore_debug_symbols%': 0, | |
| 42 | |
| 43 'bindings_idl_files': [ | |
| 44 '<@(webcore_bindings_idl_files)', | |
| 45 ], | |
| 46 | |
| 47 'bindings_idl_files!': [ | |
| 48 # Custom bindings in bindings/v8/custom exist for these. | |
| 49 '../WebCore/dom/EventListener.idl', | |
| 50 | |
| 51 # Bindings with custom Objective-C implementations. | |
|
Nico
2013/04/11 05:56:37
This comment might be out of date.
abarth-chromium
2013/04/11 06:25:17
Yeah. At this point, it probably makes sense to r
| |
| 52 '../WebCore/page/AbstractView.idl', | |
| 53 | |
| 54 # These bindings are excluded, as they're only used through inheritance an d don't define constants that would need a constructor. | |
| 55 '../WebCore/svg/ElementTimeControl.idl', | |
| 56 '../WebCore/svg/SVGExternalResourcesRequired.idl', | |
| 57 '../WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl', | |
| 58 '../WebCore/svg/SVGFitToViewBox.idl', | |
| 59 '../WebCore/svg/SVGLangSpace.idl', | |
| 60 '../WebCore/svg/SVGLocatable.idl', | |
| 61 '../WebCore/svg/SVGTests.idl', | |
| 62 '../WebCore/svg/SVGTransformable.idl', | |
| 63 | |
| 64 # FIXME: I don't know why these are excluded, either. | |
| 65 # Someone (me?) should figure it out and add appropriate comments. | |
| 66 '../WebCore/css/CSSUnknownRule.idl', | |
| 67 ], | |
| 68 | |
| 69 'conditions': [ | |
| 70 ['enable_svg!=0', { | |
| 71 'bindings_idl_files': [ | |
| 72 '<@(webcore_svg_bindings_idl_files)', | |
| 73 ], | |
| 74 }], | |
| 75 ['OS=="win" and buildtype=="Official"', { | |
| 76 # On windows official release builds, we try to preserve symbol space. | |
| 77 'derived_sources_aggregate_files': [ | |
| 78 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSourcesAll.cpp', | |
| 79 ], | |
| 80 },{ | |
| 81 'derived_sources_aggregate_files': [ | |
| 82 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources01.cpp', | |
| 83 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources02.cpp', | |
| 84 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources03.cpp', | |
| 85 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources04.cpp', | |
| 86 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources05.cpp', | |
| 87 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources06.cpp', | |
| 88 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources07.cpp', | |
| 89 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources08.cpp', | |
| 90 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources09.cpp', | |
| 91 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources10.cpp', | |
| 92 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources11.cpp', | |
| 93 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources12.cpp', | |
| 94 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources13.cpp', | |
| 95 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources14.cpp', | |
| 96 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources15.cpp', | |
| 97 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources16.cpp', | |
| 98 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources17.cpp', | |
| 99 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources18.cpp', | |
| 100 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources19.cpp', | |
| 101 ], | |
| 102 }], | |
| 103 ], | |
| 104 }, | |
| 105 | |
| 106 'target_defaults': { | |
| 107 'variables': { | |
| 108 'optimize': 'max', | |
| 109 }, | |
| 110 }, | |
| 111 | |
| 112 'conditions': [ | |
| 113 ['OS!="win" and remove_webcore_debug_symbols==1', { | |
| 114 # Remove -g from all targets defined here. | |
| 115 'target_defaults': { | |
| 116 'cflags!': ['-g'], | |
| 117 }, | |
| 118 }], | |
| 119 ['os_posix==1 and OS!="mac" and gcc_version>=46', { | |
| 120 'target_defaults': { | |
| 121 # Disable warnings about c++0x compatibility, as some names (such as nul lptr) conflict | |
| 122 # with upcoming c++0x types. | |
| 123 'cflags_cc': ['-Wno-c++0x-compat'], | |
| 124 }, | |
| 125 }], | |
| 126 ['OS=="linux" and target_arch=="arm"', { | |
| 127 # Due to a bug in gcc arm, we get warnings about uninitialized timesNewRom an.unstatic.3258 | |
| 128 # and colorTransparent.unstatic.4879. | |
| 129 'target_defaults': { | |
| 130 'cflags': ['-Wno-uninitialized'], | |
| 131 }, | |
| 132 }], | |
| 133 ['clang==1', { | |
| 134 'target_defaults': { | |
| 135 'cflags': ['-Wglobal-constructors', '-Wunused-parameter'], | |
| 136 'xcode_settings': { | |
| 137 'WARNING_CFLAGS': ['-Wglobal-constructors', '-Wunused-parameter'], | |
| 138 }, | |
| 139 }, | |
| 140 }], | |
| 141 ], | |
| 142 'targets': [{ | |
| 143 'target_name': 'supplemental_dependencies', | |
| 144 'type': 'none', | |
| 145 'actions': [{ | |
| 146 'action_name': 'generateSupplementalDependency', | |
| 147 'variables': { | |
| 148 # Write sources into a file, so that the action command line won't | |
| 149 # exceed OS limits. | |
| 150 'idl_files_list': '<|(idl_files_list.tmp <@(bindings_idl_files))', | |
| 151 }, | |
| 152 'inputs': [ | |
| 153 'scripts/preprocess-idls.pl', | |
| 154 '<(idl_files_list)', | |
| 155 '<!@(cat <(idl_files_list))', | |
| 156 ], | |
| 157 'outputs': [ | |
| 158 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp', | |
| 159 ], | |
| 160 'msvs_cygwin_shell': 0, | |
| 161 'action': [ | |
| 162 '<(perl_exe)', | |
| 163 '-w', | |
| 164 '-Iscripts', | |
| 165 '-I../WebCore/scripts', | |
| 166 'scripts/preprocess-idls.pl', | |
| 167 '--defines', | |
| 168 '<(feature_defines)', | |
| 169 '--idlFilesList', | |
| 170 '<(idl_files_list)', | |
| 171 '--supplementalDependencyFile', | |
| 172 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp', | |
| 173 ], | |
| 174 'message': 'Resolving [Supplemental=XXX] dependencies in all IDL files', | |
| 175 }] | |
| 176 }, | |
| 177 { | |
| 178 'target_name': 'bindings_sources', | |
| 179 'type': 'none', | |
| 180 'hard_dependency': 1, | |
| 181 'dependencies': [ | |
| 182 'supplemental_dependencies', | |
| 183 ], | |
| 184 'sources': [ | |
| 185 '<@(bindings_idl_files)', | |
| 186 '<@(webcore_test_support_idl_files)', | |
| 187 ], | |
| 188 'actions': [{ | |
| 189 'action_name': 'derived_sources_all_in_one', | |
| 190 'inputs': [ | |
| 191 '../WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py', | |
| 192 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp', | |
| 193 ], | |
| 194 'outputs': [ | |
| 195 '<@(derived_sources_aggregate_files)', | |
| 196 ], | |
| 197 'action': [ | |
| 198 'python', | |
| 199 '../WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py', | |
| 200 '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp', | |
| 201 '--', | |
| 202 '<@(derived_sources_aggregate_files)', | |
| 203 ], | |
| 204 }], | |
| 205 'rules': [{ | |
| 206 'rule_name': 'binding', | |
| 207 'extension': 'idl', | |
| 208 'msvs_external_rule': 1, | |
| 209 'inputs': [ | |
| 210 'scripts/generate-bindings.pl', | |
| 211 'scripts/CodeGenerator.pm', | |
| 212 'scripts/CodeGeneratorV8.pm', | |
| 213 'scripts/IDLParser.pm', | |
| 214 'scripts/IDLAttributes.txt', | |
| 215 '../WebCore/scripts/preprocessor.pm', | |
| 216 '<!@pymod_do_main(supplemental_idl_files <@(bindings_idl_files))', | |
| 217 ], | |
| 218 'outputs': [ | |
| 219 # FIXME: The .cpp file should be in webkit/bindings once | |
| 220 # we coax GYP into supporting it (see 'action' below). | |
| 221 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8<(RULE_INPUT_ROOT).cpp' , | |
| 222 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8<(RULE_INPUT_ROOT).h', | |
| 223 ], | |
| 224 'variables': { | |
| 225 'generator_include_dirs': [ | |
| 226 '--include', '../WebCore/Modules/filesystem', | |
| 227 '--include', '../WebCore/Modules/indexeddb', | |
| 228 '--include', '../WebCore/Modules/mediasource', | |
| 229 '--include', '../WebCore/Modules/mediastream', | |
| 230 '--include', '../WebCore/Modules/navigatorcontentutils', | |
| 231 '--include', '../WebCore/Modules/notifications', | |
| 232 '--include', '../WebCore/Modules/webaudio', | |
| 233 '--include', '../WebCore/Modules/webdatabase', | |
| 234 '--include', '../WebCore/css', | |
| 235 '--include', '../WebCore/dom', | |
| 236 '--include', '../WebCore/fileapi', | |
| 237 '--include', '../WebCore/html', | |
| 238 '--include', '../WebCore/page', | |
| 239 '--include', '../WebCore/plugins', | |
| 240 '--include', '../WebCore/storage', | |
| 241 '--include', '../WebCore/svg', | |
| 242 '--include', '../WebCore/testing', | |
| 243 '--include', '../WebCore/workers', | |
| 244 '--include', '../WebCore/xml', | |
| 245 '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
| 246 ], | |
| 247 }, | |
| 248 'msvs_cygwin_shell': 0, | |
| 249 # FIXME: Note that we put the .cpp files in webcore/bindings | |
| 250 # but the .h files in webkit/bindings. This is to work around | |
| 251 # the unfortunate fact that GYP strips duplicate arguments | |
| 252 # from lists. When we have a better GYP way to suppress that | |
| 253 # behavior, change the output location. | |
| 254 'action': [ | |
| 255 '<(perl_exe)', | |
| 256 '-w', | |
| 257 '-Iscripts', | |
| 258 '-I../WebCore/scripts', | |
| 259 '<(bindings_dir)/scripts/generate-bindings.pl', | |
| 260 '--outputHeadersDir', | |
| 261 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings', | |
| 262 '--outputDir', | |
| 263 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings', | |
| 264 '--idlAttributesFile', | |
| 265 'scripts/IDLAttributes.txt', | |
| 266 '--defines', | |
| 267 '<(feature_defines)', | |
| 268 '--generator', | |
| 269 'V8', | |
| 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', | |
| 283 'type': 'static_library', | |
| 284 'hard_dependency': 1, | |
| 285 'dependencies': [ | |
| 286 'bindings_sources', | |
| 287 '../WebCore/WebCore.gyp/WebCore.gyp:webcore_prerequisites', | |
| 288 '../yarr/yarr.gyp:yarr', | |
| 289 '../WTF/WTF.gyp/WTF.gyp:wtf', | |
| 290 '<(DEPTH)/build/temp_gyp/googleurl.gyp:googleurl', | |
| 291 '<(DEPTH)/skia/skia.gyp:skia', | |
| 292 '<(DEPTH)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg', | |
| 293 '<(DEPTH)/third_party/libpng/libpng.gyp:libpng', | |
| 294 '<(DEPTH)/third_party/libxml/libxml.gyp:libxml', | |
| 295 '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt', | |
| 296 '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp', | |
| 297 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', | |
| 298 '<(DEPTH)/third_party/qcms/qcms.gyp:qcms', | |
| 299 '<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite', | |
| 300 '<(DEPTH)/third_party/v8-i18n/build/all.gyp:v8-i18n', | |
| 301 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', | |
| 302 '<(libjpeg_gyp_path):libjpeg', | |
| 303 ], | |
| 304 'include_dirs': [ | |
| 305 '<(INTERMEDIATE_DIR)', | |
| 306 # FIXME: Remove <(SHARED_INTERMEDIATE_DIR)/webcore when we | |
| 307 # can entice gyp into letting us put both the .cpp and .h | |
| 308 # files in the same output directory. | |
| 309 '<(SHARED_INTERMEDIATE_DIR)/webcore', | |
| 310 '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
| 311 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings', | |
| 312 ], | |
| 313 'direct_dependent_settings': { | |
| 314 'include_dirs': [ | |
| 315 '<(SHARED_INTERMEDIATE_DIR)/webkit', | |
| 316 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings', | |
| 317 ], | |
| 318 }, | |
| 319 'sources': [ | |
| 320 '<@(derived_sources_aggregate_files)', | |
| 321 '<@(bindings_files)', | |
| 322 ], | |
| 323 'conditions': [ | |
| 324 ['OS=="win" and component=="shared_library"', { | |
| 325 'defines': [ | |
| 326 'USING_V8_SHARED', | |
| 327 ], | |
| 328 }], | |
| 329 ['OS=="win"', { | |
| 330 'defines': [ | |
| 331 '__PRETTY_FUNCTION__=__FUNCTION__', | |
| 332 ], | |
| 333 # This is needed because Event.h in this directory is blocked | |
| 334 # by a system header on windows. | |
| 335 'include_dirs++': ['../WebCore/dom'], | |
| 336 'direct_dependent_settings': { | |
| 337 'include_dirs+++': ['../WebCore/dom'], | |
| 338 }, | |
| 339 # In generated bindings code: 'switch contains default but no case'. | |
| 340 # Disable c4267 warnings until we fix size_t to int truncations. | |
| 341 'msvs_disabled_warnings': [ 4065, 4267 ], | |
| 342 }], | |
| 343 ['OS in ("linux", "android") and "WTF_USE_WEBAUDIO_IPP=1" in feature_def ines', { | |
| 344 'cflags': [ | |
| 345 '<!@(pkg-config --cflags-only-I ipp)', | |
| 346 ], | |
| 347 }], | |
| 348 ], | |
| 349 }, | |
| 350 ], | |
| 351 } | |
| OLD | NEW |