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

Unified Diff: Source/bindings/bindings.gyp

Issue 14110002: Introduce bindings.gyp (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: Source/bindings/bindings.gyp
diff --git a/Source/bindings/bindings.gyp b/Source/bindings/bindings.gyp
new file mode 100644
index 0000000000000000000000000000000000000000..1d9e731dd04e8b4d1aafc46fe0a4713b2ed6ce5f
--- /dev/null
+++ b/Source/bindings/bindings.gyp
@@ -0,0 +1,351 @@
+#
+# Copyright (C) 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+{
+ '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.
+ '../WebKit/chromium/features.gypi',
+ '../WebCore/WebCore.gypi',
+ 'bindings.gypi',
+ ],
+
+ 'variables': {
+ # If set to 1, doesn't compile debug symbols into webcore reducing the
+ # size of the binary and increasing the speed of gdb. gcc only.
+ 'remove_webcore_debug_symbols%': 0,
+
+ 'bindings_idl_files': [
+ '<@(webcore_bindings_idl_files)',
+ ],
+
+ 'bindings_idl_files!': [
+ # Custom bindings in bindings/v8/custom exist for these.
+ '../WebCore/dom/EventListener.idl',
+
+ # 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
+ '../WebCore/page/AbstractView.idl',
+
+ # These bindings are excluded, as they're only used through inheritance and don't define constants that would need a constructor.
+ '../WebCore/svg/ElementTimeControl.idl',
+ '../WebCore/svg/SVGExternalResourcesRequired.idl',
+ '../WebCore/svg/SVGFilterPrimitiveStandardAttributes.idl',
+ '../WebCore/svg/SVGFitToViewBox.idl',
+ '../WebCore/svg/SVGLangSpace.idl',
+ '../WebCore/svg/SVGLocatable.idl',
+ '../WebCore/svg/SVGTests.idl',
+ '../WebCore/svg/SVGTransformable.idl',
+
+ # FIXME: I don't know why these are excluded, either.
+ # Someone (me?) should figure it out and add appropriate comments.
+ '../WebCore/css/CSSUnknownRule.idl',
+ ],
+
+ 'conditions': [
+ ['enable_svg!=0', {
+ 'bindings_idl_files': [
+ '<@(webcore_svg_bindings_idl_files)',
+ ],
+ }],
+ ['OS=="win" and buildtype=="Official"', {
+ # On windows official release builds, we try to preserve symbol space.
+ 'derived_sources_aggregate_files': [
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSourcesAll.cpp',
+ ],
+ },{
+ 'derived_sources_aggregate_files': [
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources01.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources02.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources03.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources04.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources05.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources06.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources07.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources08.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources09.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources10.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources11.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources12.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources13.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources14.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources15.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources16.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources17.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources18.cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources19.cpp',
+ ],
+ }],
+ ],
+ },
+
+ 'target_defaults': {
+ 'variables': {
+ 'optimize': 'max',
+ },
+ },
+
+ 'conditions': [
+ ['OS!="win" and remove_webcore_debug_symbols==1', {
+ # Remove -g from all targets defined here.
+ 'target_defaults': {
+ 'cflags!': ['-g'],
+ },
+ }],
+ ['os_posix==1 and OS!="mac" and gcc_version>=46', {
+ 'target_defaults': {
+ # Disable warnings about c++0x compatibility, as some names (such as nullptr) conflict
+ # with upcoming c++0x types.
+ 'cflags_cc': ['-Wno-c++0x-compat'],
+ },
+ }],
+ ['OS=="linux" and target_arch=="arm"', {
+ # Due to a bug in gcc arm, we get warnings about uninitialized timesNewRoman.unstatic.3258
+ # and colorTransparent.unstatic.4879.
+ 'target_defaults': {
+ 'cflags': ['-Wno-uninitialized'],
+ },
+ }],
+ ['clang==1', {
+ 'target_defaults': {
+ 'cflags': ['-Wglobal-constructors', '-Wunused-parameter'],
+ 'xcode_settings': {
+ 'WARNING_CFLAGS': ['-Wglobal-constructors', '-Wunused-parameter'],
+ },
+ },
+ }],
+ ],
+ 'targets': [{
+ 'target_name': 'supplemental_dependencies',
+ 'type': 'none',
+ 'actions': [{
+ 'action_name': 'generateSupplementalDependency',
+ 'variables': {
+ # Write sources into a file, so that the action command line won't
+ # exceed OS limits.
+ 'idl_files_list': '<|(idl_files_list.tmp <@(bindings_idl_files))',
+ },
+ 'inputs': [
+ 'scripts/preprocess-idls.pl',
+ '<(idl_files_list)',
+ '<!@(cat <(idl_files_list))',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ ],
+ 'msvs_cygwin_shell': 0,
+ 'action': [
+ '<(perl_exe)',
+ '-w',
+ '-Iscripts',
+ '-I../WebCore/scripts',
+ 'scripts/preprocess-idls.pl',
+ '--defines',
+ '<(feature_defines)',
+ '--idlFilesList',
+ '<(idl_files_list)',
+ '--supplementalDependencyFile',
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ ],
+ 'message': 'Resolving [Supplemental=XXX] dependencies in all IDL files',
+ }]
+ },
+ {
+ 'target_name': 'bindings_sources',
+ 'type': 'none',
+ 'hard_dependency': 1,
+ 'dependencies': [
+ 'supplemental_dependencies',
+ ],
+ 'sources': [
+ '<@(bindings_idl_files)',
+ '<@(webcore_test_support_idl_files)',
+ ],
+ 'actions': [{
+ 'action_name': 'derived_sources_all_in_one',
+ 'inputs': [
+ '../WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py',
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ ],
+ 'outputs': [
+ '<@(derived_sources_aggregate_files)',
+ ],
+ 'action': [
+ 'python',
+ '../WebCore/WebCore.gyp/scripts/action_derivedsourcesallinone.py',
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ '--',
+ '<@(derived_sources_aggregate_files)',
+ ],
+ }],
+ 'rules': [{
+ 'rule_name': 'binding',
+ 'extension': 'idl',
+ 'msvs_external_rule': 1,
+ 'inputs': [
+ 'scripts/generate-bindings.pl',
+ 'scripts/CodeGenerator.pm',
+ 'scripts/CodeGeneratorV8.pm',
+ 'scripts/IDLParser.pm',
+ 'scripts/IDLAttributes.txt',
+ '../WebCore/scripts/preprocessor.pm',
+ '<!@pymod_do_main(supplemental_idl_files <@(bindings_idl_files))',
+ ],
+ 'outputs': [
+ # FIXME: The .cpp file should be in webkit/bindings once
+ # we coax GYP into supporting it (see 'action' below).
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8<(RULE_INPUT_ROOT).cpp',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8<(RULE_INPUT_ROOT).h',
+ ],
+ 'variables': {
+ 'generator_include_dirs': [
+ '--include', '../WebCore/Modules/filesystem',
+ '--include', '../WebCore/Modules/indexeddb',
+ '--include', '../WebCore/Modules/mediasource',
+ '--include', '../WebCore/Modules/mediastream',
+ '--include', '../WebCore/Modules/navigatorcontentutils',
+ '--include', '../WebCore/Modules/notifications',
+ '--include', '../WebCore/Modules/webaudio',
+ '--include', '../WebCore/Modules/webdatabase',
+ '--include', '../WebCore/css',
+ '--include', '../WebCore/dom',
+ '--include', '../WebCore/fileapi',
+ '--include', '../WebCore/html',
+ '--include', '../WebCore/page',
+ '--include', '../WebCore/plugins',
+ '--include', '../WebCore/storage',
+ '--include', '../WebCore/svg',
+ '--include', '../WebCore/testing',
+ '--include', '../WebCore/workers',
+ '--include', '../WebCore/xml',
+ '--include', '<(SHARED_INTERMEDIATE_DIR)/webkit',
+ ],
+ },
+ 'msvs_cygwin_shell': 0,
+ # FIXME: Note that we put the .cpp files in webcore/bindings
+ # but the .h files in webkit/bindings. This is to work around
+ # the unfortunate fact that GYP strips duplicate arguments
+ # from lists. When we have a better GYP way to suppress that
+ # behavior, change the output location.
+ 'action': [
+ '<(perl_exe)',
+ '-w',
+ '-Iscripts',
+ '-I../WebCore/scripts',
+ '<(bindings_dir)/scripts/generate-bindings.pl',
+ '--outputHeadersDir',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
+ '--outputDir',
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings',
+ '--idlAttributesFile',
+ 'scripts/IDLAttributes.txt',
+ '--defines',
+ '<(feature_defines)',
+ '--generator',
+ 'V8',
+ '<@(generator_include_dirs)',
+ '--supplementalDependencyFile',
+ '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
+ '--additionalIdlFiles',
+ '<(webcore_test_support_idl_files)',
+ '<(RULE_INPUT_PATH)',
+ '<@(preprocessor)',
+ ],
+ 'message': 'Generating binding from <(RULE_INPUT_PATH)',
+ }],
+ },
+ {
+ 'target_name': 'bindings',
+ 'type': 'static_library',
+ 'hard_dependency': 1,
+ 'dependencies': [
+ 'bindings_sources',
+ '../WebCore/WebCore.gyp/WebCore.gyp:webcore_prerequisites',
+ '../yarr/yarr.gyp:yarr',
+ '../WTF/WTF.gyp/WTF.gyp:wtf',
+ '<(DEPTH)/build/temp_gyp/googleurl.gyp:googleurl',
+ '<(DEPTH)/skia/skia.gyp:skia',
+ '<(DEPTH)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg',
+ '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
+ '<(DEPTH)/third_party/libxml/libxml.gyp:libxml',
+ '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt',
+ '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp',
+ '<(DEPTH)/third_party/npapi/npapi.gyp:npapi',
+ '<(DEPTH)/third_party/qcms/qcms.gyp:qcms',
+ '<(DEPTH)/third_party/sqlite/sqlite.gyp:sqlite',
+ '<(DEPTH)/third_party/v8-i18n/build/all.gyp:v8-i18n',
+ '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
+ '<(libjpeg_gyp_path):libjpeg',
+ ],
+ 'include_dirs': [
+ '<(INTERMEDIATE_DIR)',
+ # FIXME: Remove <(SHARED_INTERMEDIATE_DIR)/webcore when we
+ # can entice gyp into letting us put both the .cpp and .h
+ # files in the same output directory.
+ '<(SHARED_INTERMEDIATE_DIR)/webcore',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(SHARED_INTERMEDIATE_DIR)/webkit',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
+ ],
+ },
+ 'sources': [
+ '<@(derived_sources_aggregate_files)',
+ '<@(bindings_files)',
+ ],
+ 'conditions': [
+ ['OS=="win" and component=="shared_library"', {
+ 'defines': [
+ 'USING_V8_SHARED',
+ ],
+ }],
+ ['OS=="win"', {
+ 'defines': [
+ '__PRETTY_FUNCTION__=__FUNCTION__',
+ ],
+ # This is needed because Event.h in this directory is blocked
+ # by a system header on windows.
+ 'include_dirs++': ['../WebCore/dom'],
+ 'direct_dependent_settings': {
+ 'include_dirs+++': ['../WebCore/dom'],
+ },
+ # In generated bindings code: 'switch contains default but no case'.
+ # Disable c4267 warnings until we fix size_t to int truncations.
+ 'msvs_disabled_warnings': [ 4065, 4267 ],
+ }],
+ ['OS in ("linux", "android") and "WTF_USE_WEBAUDIO_IPP=1" in feature_defines', {
+ 'cflags': [
+ '<!@(pkg-config --cflags-only-I ipp)',
+ ],
+ }],
+ ],
+ },
+ ],
+}

Powered by Google App Engine
This is Rietveld 408576698