2 # Copyright (C) 2009 Google Inc. All rights reserved.
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
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
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.
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.
33 # FIXME: Sense whether upstream or downstream build, and
34 # include the right features.gypi
35 '../../../Source/WebKit/chromium/features.gypi',
38 # Location of the chromium src directory.
40 ['inside_chromium_build==0', {
41 # Webkit is being built outside of the full chromium project.
43 'chromium_src_dir': '../../../Source/WebKit/chromium',
44 'libjpeg_gyp_path': '<(chromium_src_dir)/third_party/libjpeg/libjpeg.gyp',
47 # WebKit is checked out in src/chromium/third_party/WebKit
48 'variables': {'chromium_src_dir': '../../../../..'},
53 # On the Mac, libWebKitSystemInterface*.a is used to help WebCore
54 # interface with the system. This library is supplied as a static
55 # library in binary format. At present, it contains many global
56 # symbols not marked private_extern. It should be considered an
57 # implementation detail of WebCore, and does not need these symbols
58 # to be exposed so widely.
60 # This target contains an action that cracks open the existing
61 # static library and rebuilds it with these global symbols
62 # transformed to private_extern.
63 'target_name': 'webkit_system_interface',
64 'type': 'static_library',
66 'adjusted_library_path':
67 '<(PRODUCT_DIR)/libWebKitSystemInterfaceLeopardPrivateExtern.a',
70 # An empty source file is needed to convince Xcode to produce
71 # output for this target. The resulting library won't actually
72 # contain anything. The library at adjusted_library_path will,
73 # and that library is pushed to dependents of this target below.
78 'action_name': 'Adjust Visibility',
80 'mac/adjust_visibility.sh',
81 '../../../WebKitLibraries/libWebKitSystemInterfaceLeopard.a',
84 '<(adjusted_library_path)',
89 '<(INTERMEDIATE_DIR)/adjust_visibility', # work directory
95 '<(adjusted_library_path)',
98 }, # target webkit_system_interface
100 }], # condition OS == "mac"
101 ['OS!="win" and remove_webcore_debug_symbols==1', {
102 # Remove -g from all targets defined here.
110 # If set to 1, doesn't compile debug symbols into webcore reducing the
111 # size of the binary and increasing the speed of gdb. gcc only.
112 'remove_webcore_debug_symbols%': 0,
114 # If set to 0, doesn't build SVG support, reducing the size of the
115 # binary and increasing the speed of gdb.
118 'webcore_include_dirs': [
121 '../accessibility/chromium',
123 '../bindings/generic',
125 '../bindings/v8/custom',
126 '../bindings/v8/specialization',
139 '../loader/appcache',
149 '../platform/animation',
151 '../platform/audio/chromium',
152 '../platform/chromium',
153 '../platform/graphics',
154 '../platform/graphics/chromium',
155 '../platform/graphics/filters',
156 '../platform/graphics/gpu',
157 '../platform/graphics/opentype',
158 '../platform/graphics/skia',
159 '../platform/graphics/transforms',
160 '../platform/image-decoders',
161 '../platform/image-decoders/bmp',
162 '../platform/image-decoders/gif',
163 '../platform/image-decoders/ico',
164 '../platform/image-decoders/jpeg',
165 '../platform/image-decoders/png',
166 '../platform/image-decoders/skia',
167 '../platform/image-decoders/xbm',
168 '../platform/image-decoders/webp',
169 '../platform/image-encoders/skia',
171 '../platform/network',
172 '../platform/network/chromium',
175 '../platform/text/transcoder',
177 '../plugins/chromium',
179 '../rendering/style',
182 '../storage/chromium',
186 '../svg/graphics/filters',
195 'bindings_idl_files': [
196 '<@(webcore_bindings_idl_files)',
199 'bindings_idl_files!': [
200 # Custom bindings in bindings/v8/custom exist for these.
201 '../dom/EventListener.idl',
202 '../dom/EventTarget.idl',
203 '../html/VoidCallback.idl',
205 # Bindings with custom Objective-C implementations.
206 '../page/AbstractView.idl',
208 # These bindings are excluded, as they're only used through inheritance and don't define constants that would need a constructor.
209 '../svg/ElementTimeControl.idl',
210 '../svg/SVGExternalResourcesRequired.idl',
211 '../svg/SVGFilterPrimitiveStandardAttributes.idl',
212 '../svg/SVGFitToViewBox.idl',
214 '../svg/SVGLangSpace.idl',
215 '../svg/SVGLocatable.idl',
216 '../svg/SVGStylable.idl',
217 '../svg/SVGTests.idl',
218 '../svg/SVGTransformable.idl',
219 '../svg/SVGViewSpec.idl',
220 '../svg/SVGZoomAndPan.idl',
222 # FIXME: I don't know why these are excluded, either.
223 # Someone (me?) should figure it out and add appropriate comments.
224 '../css/CSSUnknownRule.idl',
228 # TODO(maruel): Move it in its own project or generate it anyway?
230 'bindings_idl_files': [
231 '<@(webcore_svg_bindings_idl_files)',
235 'webcore_include_dirs+': [
236 # platform/graphics/cg and cocoa need to come before
237 # platform/graphics/chromium so that the Mac build picks up the
238 # version of ImageBufferData.h in the cg directory and
239 # FontPlatformData.h in the cocoa directory. The + prepends this
240 # directory to the list.
241 # FIXME: This shouldn't need to be prepended.
242 '../platform/graphics/cocoa',
243 '../platform/graphics/cg',
245 'webcore_include_dirs': [
246 # FIXME: Eliminate dependency on platform/mac and related
248 # FIXME: Eliminate dependency on platform/graphics/mac and
249 # related directories.
250 # platform/graphics/cg may need to stick around, though.
251 '../loader/archive/cf',
252 '../platform/audio/mac',
253 '../platform/graphics/mac',
255 '../platform/text/mac',
259 'webcore_include_dirs': [
261 '../platform/audio/win',
262 '../platform/graphics/win',
263 '../platform/text/win',
267 # enable -Wall and -Werror, just for Mac and Linux builds for now
268 # FIXME: Also enable this for Windows after verifying no warnings
271 ['OS=="win" and buildtype=="Official"', {
272 # On windows official release builds, we try to preserve symbol space.
273 'derived_sources_aggregate_files': [
274 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSourcesAll.cpp',
277 'derived_sources_aggregate_files': [
278 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources1.cpp',
279 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources2.cpp',
280 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources3.cpp',
281 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources4.cpp',
282 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources5.cpp',
283 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources6.cpp',
284 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources7.cpp',
285 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8DerivedSources8.cpp',
292 'target_name': 'inspector_protocol_sources',
296 'action_name': 'generateInspectorProtocolSources',
297 # The second input item will be used as item name in vcproj.
298 # It is not possible to put Inspector.idl there because
299 # all idl files are marking as excluded by gyp generator.
301 '../bindings/scripts/generate-bindings.pl',
302 '../inspector/CodeGeneratorInspector.pm',
303 '../bindings/scripts/CodeGenerator.pm',
304 '../bindings/scripts/IDLParser.pm',
305 '../bindings/scripts/IDLStructure.pm',
306 '../inspector/Inspector.idl',
309 '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendDispatcher.cpp',
310 '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js',
311 '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorBackendDispatcher.h',
312 '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorFrontend.cpp',
313 '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorFrontend.h',
316 'generator_include_dirs': [
321 'scripts/rule_binding.py',
322 '../inspector/Inspector.idl',
323 '<(SHARED_INTERMEDIATE_DIR)/webcore',
324 '<(SHARED_INTERMEDIATE_DIR)/webkit',
328 '--defines', '<(feature_defines) LANGUAGE_JAVASCRIPT',
329 '--generator', 'Inspector',
330 '<@(generator_include_dirs)'
332 'message': 'Generating Inspector protocol sources from Inspector.idl',
337 'target_name': 'injected_script_source',
341 'action_name': 'generateInjectedScriptSource',
343 '../inspector/InjectedScriptSource.js',
346 '<(SHARED_INTERMEDIATE_DIR)/webkit/InjectedScriptSource.h',
350 '../inspector/xxd.pl',
351 'InjectedScriptSource_js',
352 '../inspector/InjectedScriptSource.js',
353 '<(SHARED_INTERMEDIATE_DIR)/webkit/InjectedScriptSource.h'
355 'message': 'Generating InjectedScriptSource.h from InjectedScriptSource.js',
360 'target_name': 'webcore_bindings_sources',
362 'hard_dependency': 1,
365 '../css/CSSGrammar.y',
366 '../xml/XPathGrammar.y',
369 '../html/DocTypeStrings.gperf',
370 '../platform/ColorData.gperf',
373 '<@(bindings_idl_files)',
376 # Actions to build derived sources.
378 'action_name': 'HTMLEntityTable',
380 '../html/parser/HTMLEntityNames.in',
383 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLEntityTable.cpp'
387 '../html/parser/create-html-entity-table',
394 'action_name': 'CSSPropertyNames',
396 '../css/makeprop.pl',
397 '../css/CSSPropertyNames.in',
400 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSPropertyNames.cpp',
401 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSPropertyNames.h',
405 'scripts/action_csspropertynames.py',
411 # TODO(maruel): Move it in its own project or generate it anyway?
414 '../css/SVGCSSPropertyNames.in',
420 'action_name': 'CSSValueKeywords',
422 '../css/makevalues.pl',
423 '../css/CSSValueKeywords.in',
426 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSValueKeywords.cpp',
427 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSValueKeywords.h',
431 'scripts/action_cssvaluekeywords.py',
437 # TODO(maruel): Move it in its own project or generate it anyway?
440 '../css/SVGCSSValueKeywords.in',
446 'action_name': 'HTMLNames',
448 '../dom/make_names.pl',
449 '../html/HTMLTagNames.in',
450 '../html/HTMLAttributeNames.in',
453 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLNames.cpp',
454 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLNames.h',
455 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLElementFactory.cpp',
456 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8HTMLElementWrapperFactory.cpp',
457 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8HTMLElementWrapperFactory.h',
461 'scripts/action_makenames.py',
467 '--wrapperFactoryV8',
468 '--extraDefines', '<(feature_defines)'
472 'action_name': 'SVGNames',
474 '../dom/make_names.pl',
476 '../svg/svgattrs.in',
479 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGNames.cpp',
480 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGNames.h',
481 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGElementFactory.cpp',
482 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGElementFactory.h',
483 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8SVGElementWrapperFactory.cpp',
484 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8SVGElementWrapperFactory.h',
488 'scripts/action_makenames.py',
494 '--wrapperFactoryV8',
495 '--extraDefines', '<(feature_defines)'
499 'action_name': 'MathMLNames',
501 '../dom/make_names.pl',
502 '../mathml/mathtags.in',
503 '../mathml/mathattrs.in',
506 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLNames.cpp',
507 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLNames.h',
508 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLElementFactory.cpp',
509 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLElementFactory.h',
513 'scripts/action_makenames.py',
519 '--extraDefines', '<(feature_defines)'
523 'action_name': 'UserAgentStyleSheets',
525 '../css/make-css-file-arrays.pl',
528 '../css/view-source.css',
529 '../css/themeChromiumLinux.css',
530 '../css/themeChromiumSkia.css',
531 '../css/themeWin.css',
532 '../css/themeWinQuirks.css',
535 '../css/mediaControls.css',
536 '../css/mediaControlsChromium.css',
539 '<(SHARED_INTERMEDIATE_DIR)/webkit/UserAgentStyleSheets.h',
540 '<(SHARED_INTERMEDIATE_DIR)/webkit/UserAgentStyleSheetsData.cpp',
544 'scripts/action_useragentstylesheets.py',
551 'action_name': 'XLinkNames',
553 '../dom/make_names.pl',
554 '../svg/xlinkattrs.in',
557 '<(SHARED_INTERMEDIATE_DIR)/webkit/XLinkNames.cpp',
558 '<(SHARED_INTERMEDIATE_DIR)/webkit/XLinkNames.h',
562 'scripts/action_makenames.py',
567 '--extraDefines', '<(feature_defines)'
571 'action_name': 'XMLNSNames',
573 '../dom/make_names.pl',
574 '../xml/xmlnsattrs.in',
577 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNSNames.cpp',
578 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNSNames.h',
582 'scripts/action_makenames.py',
587 '--extraDefines', '<(feature_defines)'
591 'action_name': 'XMLNames',
593 '../dom/make_names.pl',
594 '../xml/xmlattrs.in',
597 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNames.cpp',
598 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNames.h',
602 'scripts/action_makenames.py',
607 '--extraDefines', '<(feature_defines)'
611 'action_name': 'tokenizer',
613 '../css/maketokenizer',
614 '../css/tokenizer.flex',
617 '<(SHARED_INTERMEDIATE_DIR)/webkit/tokenizer.cpp',
621 'scripts/action_maketokenizer.py',
628 'action_name': 'derived_sources_all_in_one',
630 # Write sources into a file, so that the action command line won't
632 'idls_list_temp_file': '<|(idls_list_temp_file.tmp <@(bindings_idl_files))',
635 'scripts/action_derivedsourcesallinone.py',
636 '<(idls_list_temp_file)',
637 '<!@(cat <(idls_list_temp_file))',
640 '<@(derived_sources_aggregate_files)',
644 'scripts/action_derivedsourcesallinone.py',
645 '<(idls_list_temp_file)',
647 '<@(derived_sources_aggregate_files)',
652 # Rules to build derived sources.
654 'rule_name': 'bison',
657 '<(SHARED_INTERMEDIATE_DIR)/webkit/<(RULE_INPUT_ROOT).cpp',
658 '<(SHARED_INTERMEDIATE_DIR)/webkit/<(RULE_INPUT_ROOT).h'
662 'scripts/rule_bison.py',
663 '<(RULE_INPUT_PATH)',
664 '<(SHARED_INTERMEDIATE_DIR)/webkit'
668 'rule_name': 'gperf',
669 'extension': 'gperf',
671 # gperf outputs are generated by WebCore/make-hash-tools.pl
674 '<(SHARED_INTERMEDIATE_DIR)/webkit/<(RULE_INPUT_ROOT).cpp',
677 '../make-hash-tools.pl',
681 '../make-hash-tools.pl',
682 '<(SHARED_INTERMEDIATE_DIR)/webkit',
683 '<(RULE_INPUT_PATH)',
686 # Rule to build generated JavaScript (V8) bindings from .idl source.
688 'rule_name': 'binding',
690 'msvs_external_rule': 1,
692 '../bindings/scripts/generate-bindings.pl',
693 '../bindings/scripts/CodeGenerator.pm',
694 '../bindings/scripts/CodeGeneratorV8.pm',
695 '../bindings/scripts/IDLParser.pm',
696 '../bindings/scripts/IDLStructure.pm',
699 # FIXME: The .cpp file should be in webkit/bindings once
700 # we coax GYP into supporting it (see 'action' below).
701 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings/V8<(RULE_INPUT_ROOT).cpp',
702 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings/V8<(RULE_INPUT_ROOT).h',
705 'generator_include_dirs': [
706 '--include', '../css',
707 '--include', '../dom',
708 '--include', '../fileapi',
709 '--include', '../html',
710 '--include', '../notifications',
711 '--include', '../page',
712 '--include', '../plugins',
713 '--include', '../storage',
714 '--include', '../svg',
715 '--include', '../webaudio',
716 '--include', '../websockets',
717 '--include', '../workers',
718 '--include', '../xml',
721 # FIXME: Note that we put the .cpp files in webcore/bindings
722 # but the .h files in webkit/bindings. This is to work around
723 # the unfortunate fact that GYP strips duplicate arguments
724 # from lists. When we have a better GYP way to suppress that
725 # behavior, change the output location.
728 'scripts/rule_binding.py',
729 '<(RULE_INPUT_PATH)',
730 '<(SHARED_INTERMEDIATE_DIR)/webcore/bindings',
731 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
735 '--defines', '<(feature_defines) LANGUAGE_JAVASCRIPT V8_BINDING',
737 '<@(generator_include_dirs)'
739 'message': 'Generating binding from <(RULE_INPUT_PATH)',
744 'target_name': 'webcore_bindings',
745 'type': '<(library)',
746 'hard_dependency': 1,
748 'webcore_bindings_sources',
749 'inspector_protocol_sources',
750 'injected_script_source',
751 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
752 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
753 '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
754 '<(chromium_src_dir)/skia/skia.gyp:skia',
755 '<(chromium_src_dir)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg',
756 '<(chromium_src_dir)/third_party/libpng/libpng.gyp:libpng',
757 '<(chromium_src_dir)/third_party/libxml/libxml.gyp:libxml',
758 '<(chromium_src_dir)/third_party/libxslt/libxslt.gyp:libxslt',
759 '<(chromium_src_dir)/third_party/libwebp/libwebp.gyp:libwebp',
760 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
761 '<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
762 '<(libjpeg_gyp_path):libjpeg',
765 '<(INTERMEDIATE_DIR)',
766 # FIXME: Remove <(SHARED_INTERMEDIATE_DIR)/webcore when we
767 # can entice gyp into letting us put both the .cpp and .h
768 # files in the same output directory.
769 '<(SHARED_INTERMEDIATE_DIR)/webcore',
770 '<(SHARED_INTERMEDIATE_DIR)/webkit',
771 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
772 '<@(webcore_include_dirs)',
774 'direct_dependent_settings': {
776 '<(SHARED_INTERMEDIATE_DIR)/webkit',
777 '<(SHARED_INTERMEDIATE_DIR)/webkit/bindings',
781 # These files include all the .cpp files generated from the .idl files
783 '<@(derived_sources_aggregate_files)',
785 # Additional .cpp files for HashTools.h
786 '<(SHARED_INTERMEDIATE_DIR)/webkit/DocTypeStrings.cpp',
787 '<(SHARED_INTERMEDIATE_DIR)/webkit/ColorData.cpp',
788 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSPropertyNames.cpp',
789 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSValueKeywords.cpp',
791 # Additional .cpp files from webcore_bindings_sources actions.
792 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLElementFactory.cpp',
793 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLNames.cpp',
794 '<(SHARED_INTERMEDIATE_DIR)/webkit/UserAgentStyleSheetsData.cpp',
795 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8HTMLElementWrapperFactory.cpp',
796 '<(SHARED_INTERMEDIATE_DIR)/webkit/XLinkNames.cpp',
797 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNSNames.cpp',
798 '<(SHARED_INTERMEDIATE_DIR)/webkit/XMLNames.cpp',
799 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGNames.cpp',
800 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLElementFactory.cpp',
801 '<(SHARED_INTERMEDIATE_DIR)/webkit/MathMLNames.cpp',
803 # Generated from HTMLEntityNames.in
804 '<(SHARED_INTERMEDIATE_DIR)/webkit/HTMLEntityTable.cpp',
806 # Additional .cpp files from the webcore_bindings_sources rules.
807 '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSGrammar.cpp',
808 '<(SHARED_INTERMEDIATE_DIR)/webkit/XPathGrammar.cpp',
810 # Additional .cpp files from the webcore_inspector_sources list.
811 '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorFrontend.cpp',
812 '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendDispatcher.cpp',
815 ['javascript_engine=="v8"', {
817 '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
820 ['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
827 # TODO(maruel): Move it in its own project or generate it anyway?
830 '<(SHARED_INTERMEDIATE_DIR)/webkit/SVGElementFactory.cpp',
831 '<(SHARED_INTERMEDIATE_DIR)/webkit/V8SVGElementWrapperFactory.cpp',
836 '../../../WebKitLibraries',
841 '<(chromium_src_dir)/build/win/system.gyp:cygwin'
844 'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
845 '__PRETTY_FUNCTION__=__FUNCTION__',
847 # This is needed because Event.h in this directory is blocked
848 # by a system header on windows.
849 'include_dirs++': ['../dom'],
850 'direct_dependent_settings': {
851 'include_dirs+++': ['../dom'],
854 # FIXME: (kbr) ideally this target should just depend on webcore_prerequisites
855 # to pick up this include directory, but I'm nervous about making that change.
856 ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
858 '<(chromium_src_dir)/third_party/mkl/include',
864 # We'll soon split libwebcore in multiple smaller libraries.
865 # webcore_prerequisites will be the 'base' target of every sub-target.
866 'target_name': 'webcore_prerequisites',
870 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
871 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
872 '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
873 '<(chromium_src_dir)/skia/skia.gyp:skia',
874 '<(chromium_src_dir)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg',
875 '<(chromium_src_dir)/third_party/libwebp/libwebp.gyp:libwebp',
876 '<(chromium_src_dir)/third_party/libpng/libpng.gyp:libpng',
877 '<(chromium_src_dir)/third_party/libxml/libxml.gyp:libxml',
878 '<(chromium_src_dir)/third_party/libxslt/libxslt.gyp:libxslt',
879 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
880 '<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
881 '<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
882 '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
883 '<(libjpeg_gyp_path):libjpeg',
885 'export_dependent_settings': [
887 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
888 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
889 '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
890 '<(chromium_src_dir)/skia/skia.gyp:skia',
891 '<(chromium_src_dir)/third_party/iccjpeg/iccjpeg.gyp:iccjpeg',
892 '<(chromium_src_dir)/third_party/libwebp/libwebp.gyp:libwebp',
893 '<(chromium_src_dir)/third_party/libpng/libpng.gyp:libpng',
894 '<(chromium_src_dir)/third_party/libxml/libxml.gyp:libxml',
895 '<(chromium_src_dir)/third_party/libxslt/libxslt.gyp:libxslt',
896 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
897 '<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
898 '<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
899 '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
900 '<(libjpeg_gyp_path):libjpeg',
902 # This is needed for mac because of webkit_system_interface. It'd be nice
903 # if this hard dependency could be split off the rest.
904 'hard_dependency': 1,
905 'direct_dependent_settings': {
907 'WEBCORE_NAVIGATOR_VENDOR="Google Inc."',
910 '<(INTERMEDIATE_DIR)',
911 '<@(webcore_include_dirs)',
912 '<(chromium_src_dir)/gpu',
913 '<(chromium_src_dir)/third_party/angle/include/GLSLANG',
915 'mac_framework_dirs': [
916 '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
918 'msvs_disabled_warnings': [
919 4138, 4244, 4291, 4305, 4344, 4355, 4521, 4099,
921 'scons_line_length' : 1,
923 # Some Mac-specific parts of WebKit won't compile without having this
924 # prefix header injected.
925 # FIXME: make this a first-class setting.
926 'GCC_PREFIX_HEADER': '../WebCorePrefix.h',
930 ['javascript_engine=="v8"', {
932 '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
934 'export_dependent_settings': [
935 '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
938 ['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
945 ['use_accelerated_compositing==1', {
947 '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib',
949 'export_dependent_settings': [
950 '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib',
953 ['OS=="linux" or OS=="freebsd"', {
955 '<(chromium_src_dir)/build/linux/system.gyp:fontconfig',
956 '<(chromium_src_dir)/build/linux/system.gyp:gtk',
958 'export_dependent_settings': [
959 '<(chromium_src_dir)/build/linux/system.gyp:fontconfig',
960 '<(chromium_src_dir)/build/linux/system.gyp:gtk',
963 # WebCore does not work with strict aliasing enabled.
964 # https://bugs.webkit.org/show_bug.cgi?id=25864
965 '-fno-strict-aliasing',
970 # Mozilla on Linux effectively uses uname -sm, but when running
971 # 32-bit x86 code on an x86_64 processor, it uses
972 # "Linux i686 (x86_64)". Matching that would require making a
973 # run-time determination.
974 'WEBCORE_NAVIGATOR_PLATFORM="Linux i686"',
979 'webkit_system_interface',
981 'export_dependent_settings': [
982 'webkit_system_interface',
985 # Match Safari and Mozilla on Mac x86.
986 'WEBCORE_NAVIGATOR_PLATFORM="MacIntel"',
988 # Chromium's version of WebCore includes the following Objective-C
989 # classes. The system-provided WebCore framework may also provide
990 # these classes. Because of the nature of Objective-C binding
991 # (dynamically at runtime), it's possible for the Chromium-provided
992 # versions to interfere with the system-provided versions. This may
993 # happen when a system framework attempts to use WebCore.framework,
994 # such as when converting an HTML-flavored string to an
995 # NSAttributedString. The solution is to force Objective-C class
996 # names that would conflict to use alternate names.
998 # FIXME: This list will hopefully shrink but may also grow.
1000 # nm libwebcore.a | grep -E '[atsATS] ([+-]\[|\.objc_class_name)'
1001 # and make sure that everything listed there has the alternate
1002 # ChromiumWebCoreObjC name, and that nothing extraneous is listed
1003 # here. If all Objective-C can be eliminated from Chromium's WebCore
1004 # library, these defines should be removed entirely.
1005 'ScrollbarPrefsObserver=ChromiumWebCoreObjCScrollbarPrefsObserver',
1006 'WebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver',
1007 'WebFontCache=ChromiumWebCoreObjCWebFontCache',
1010 '../../../WebKitLibraries',
1015 '<(chromium_src_dir)/build/win/system.gyp:cygwin'
1017 'export_dependent_settings': [
1018 '<(chromium_src_dir)/build/win/system.gyp:cygwin'
1021 # Match Safari and Mozilla on Windows.
1022 'WEBCORE_NAVIGATOR_PLATFORM="Win32"',
1023 '__PRETTY_FUNCTION__=__FUNCTION__',
1025 # This is needed because Event.h in this directory is blocked
1026 # by a system header on windows.
1027 'include_dirs++': ['../dom'],
1029 ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
1030 # This directory needs to be on the include path for multiple sub-targets of webcore.
1031 'direct_dependent_settings': {
1033 '<(chromium_src_dir)/third_party/mkl/include',
1040 'target_name': 'webcore_html',
1041 'type': '<(library)',
1043 'webcore_prerequisites',
1046 '<@(webcore_files)',
1049 # Start by excluding everything then include html files only.
1051 ['include', 'html/'],
1055 'target_name': 'webcore_svg',
1056 'type': '<(library)',
1058 'webcore_prerequisites',
1061 '<@(webcore_files)',
1064 # Start by excluding everything then include svg files only. Note that
1065 # css/SVG* and bindings/v8/custom/V8SVG* are still built in
1066 # webcore_remaining.
1068 ['include', 'svg/'],
1069 ['include', 'css/svg/'],
1070 ['include', 'rendering/style/SVG'],
1071 ['include', 'rendering/RenderSVG'],
1072 ['include', 'rendering/SVG'],
1073 ['exclude', 'svg/SVGAllInOne\\.cpp$'],
1077 'target_name': 'webcore_platform',
1078 'type': '<(library)',
1080 'webcore_prerequisites',
1082 # This is needed for mac because of webkit_system_interface. It'd be nice
1083 # if this hard dependency could be split off the rest.
1084 'hard_dependency': 1,
1086 '<@(webcore_files)',
1088 # For WebCoreSystemInterface, Mac-only.
1089 '../../../Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm',
1092 # Start by excluding everything then include platform files only.
1094 ['include', 'platform/'],
1096 # Exclude things that don't apply to the Chromium platform on the basis
1097 # of their enclosing directories and tags at the ends of their
1099 ['exclude', '(android|cairo|cf|cg|curl|gtk|haiku|linux|mac|mkl|opentype|posix|qt|soup|svg|symbian|win|wx)/'],
1100 ['exclude', '(?<!Chromium)(Android|Cairo|CF|CG|Curl|Gtk|Linux|Mac|OpenType|POSIX|Posix|Qt|Safari|Soup|Symbian|Win|Wx)\\.(cpp|mm?)$'],
1102 # A few things can't be excluded by patterns. List them individually.
1104 ['include', 'platform/graphics/opentype/OpenTypeSanitizer\\.cpp$'],
1106 # Exclude some DB-related files.
1107 ['exclude', 'platform/sql/SQLiteFileSystem\\.cpp$'],
1109 # Use platform/KURLGoogle.cpp instead.
1110 ['exclude', 'platform/KURL\\.cpp$'],
1112 # Use platform/MIMETypeRegistryChromium.cpp instead.
1113 ['exclude', 'platform/MIMETypeRegistry\\.cpp$'],
1115 # Theme.cpp is used only if we're using USE_NEW_THEME. We are not for
1116 # Windows and Linux. We manually include Theme.cpp for the Mac below.
1117 ['exclude', 'platform/Theme\\.cpp$'],
1119 # Use LinkHashChromium.cpp instead
1120 ['exclude', 'platform/LinkHash\\.cpp$'],
1122 ['include', 'thirdparty/glu/libtess/'],
1125 ['OS=="linux" or OS=="freebsd"', {
1127 # Cherry-pick files excluded by the broader regular expressions above.
1128 ['include', 'platform/chromium/KeyCodeConversionGtk\\.cpp$'],
1129 ['include', 'platform/graphics/chromium/ComplexTextControllerLinux\\.cpp$'],
1130 ['include', 'platform/graphics/chromium/FontCacheLinux\\.cpp$'],
1131 ['include', 'platform/graphics/chromium/FontLinux\\.cpp$'],
1132 ['include', 'platform/graphics/chromium/FontPlatformDataLinux\\.cpp$'],
1133 ['include', 'platform/graphics/chromium/SimpleFontDataLinux\\.cpp$'],
1136 '<(chromium_src_dir)/third_party/harfbuzz/harfbuzz.gyp:harfbuzz',
1139 ['OS=="linux" and target_arch=="arm"', {
1140 # Due to a bug in gcc arm, we get warnings about uninitialized timesNewRoman.unstatic.3258
1141 'cflags': ['-Wno-uninitialized'],
1144 # Necessary for Mac .mm stuff.
1146 '../../../WebKitLibraries',
1149 'webkit_system_interface',
1153 # Allow framework-style #include of
1154 # <WebCore/WebCoreSystemInterface.h>.
1155 'action_name': 'WebCoreSystemInterface.h',
1157 '../platform/mac/WebCoreSystemInterface.h',
1160 '<(INTERMEDIATE_DIR)/WebCore/WebCoreSystemInterface.h',
1162 'action': ['cp', '<@(_inputs)', '<@(_outputs)'],
1166 # Additional files from the WebCore Mac build that are presently
1167 # used in the WebCore Chromium Mac build too.
1169 # The Mac build is PLATFORM_CF but does not use CFNetwork.
1170 ['include', 'CF\\.cpp$'],
1171 ['exclude', 'network/cf/'],
1173 # The Mac build is PLATFORM_CG too. platform/graphics/cg is the
1174 # only place that CG files we want to build are located, and not
1175 # all of them even have a CG suffix, so just add them by a
1176 # regexp matching their directory.
1177 ['include', 'platform/graphics/cg/[^/]*(?<!Win)?\\.(cpp|mm?)$'],
1179 # Use native Mac font code from WebCore.
1180 ['include', 'platform/(graphics/)?mac/[^/]*Font[^/]*\\.(cpp|mm?)$'],
1181 ['include', 'platform/graphics/mac/ComplexText[^/]*\\.(cpp|h)$'],
1183 # We can use this for the fast Accelerate.framework FFT.
1184 ['include', 'platform/audio/mac/FFTFrameMac\\.cpp$'],
1186 # Cherry-pick some files that can't be included by broader regexps.
1187 # Some of these are used instead of Chromium platform files, see
1188 # the specific exclusions in the "sources!" list below.
1189 ['include', 'rendering/RenderThemeMac\\.mm$'],
1190 ['include', 'loader/archive/cf/LegacyWebArchive\\.cpp$'],
1191 ['include', 'platform/graphics/mac/ColorMac\\.mm$'],
1192 ['include', 'platform/graphics/mac/FloatPointMac\\.mm$'],
1193 ['include', 'platform/graphics/mac/FloatRectMac\\.mm$'],
1194 ['include', 'platform/graphics/mac/FloatSizeMac\\.mm$'],
1195 ['include', 'platform/graphics/mac/GlyphPageTreeNodeMac\\.cpp$'],
1196 ['include', 'platform/graphics/mac/GraphicsContextMac\\.mm$'],
1197 ['include', 'platform/graphics/mac/IntRectMac\\.mm$'],
1198 ['include', 'platform/mac/BlockExceptions\\.mm$'],
1199 ['include', 'platform/mac/KillRingMac\\.mm$'],
1200 ['include', 'platform/mac/LocalCurrentGraphicsContext\\.mm$'],
1201 ['include', 'platform/mac/PurgeableBufferMac\\.cpp$'],
1202 ['include', 'platform/mac/WebCoreSystemInterface\\.mm$'],
1203 ['include', 'platform/mac/WebCoreTextRenderer\\.mm$'],
1204 ['include', 'platform/text/mac/ShapeArabic\\.c$'],
1205 ['include', 'platform/text/mac/String(Impl)?Mac\\.mm$'],
1206 # Use USE_NEW_THEME on Mac.
1207 ['include', 'platform/Theme\\.cpp$'],
1209 ['include', 'Source/WebKit/mac/WebCoreSupport/WebSystemInterface\\.mm$'],
1211 # Chromium Mac does not use skia.
1212 ['exclude', 'platform/graphics/skia/[^/]*Skia\\.(cpp|h)$'],
1214 # The Mac uses platform/mac/KillRingMac.mm instead of the dummy
1216 ['exclude', 'platform/KillRingNone\\.cpp$'],
1218 # The Mac currently uses FontCustomPlatformData.cpp from
1219 # platform/graphics/mac, included by regex above, instead.
1220 ['exclude', 'platform/graphics/skia/FontCustomPlatformData\\.cpp$'],
1222 # The Mac currently uses ScrollbarThemeChromiumMac.mm, which is not
1223 # related to ScrollbarThemeChromium.cpp.
1224 ['exclude', 'platform/chromium/ScrollbarThemeChromium\\.cpp$'],
1226 # The Mac currently uses ImageChromiumMac.mm from
1227 # platform/graphics/chromium, included by regex above, instead.
1228 ['exclude', 'platform/graphics/chromium/ImageChromium\\.cpp$'],
1230 # The Mac does not use ImageSourceCG.cpp from platform/graphics/cg
1231 # even though it is included by regex above.
1232 ['exclude', 'platform/graphics/cg/ImageSourceCG\\.cpp$'],
1233 ['exclude', 'platform/graphics/cg/PDFDocumentImage\\.cpp$'],
1235 # ImageDecoderSkia is not used on mac. ImageDecoderCG is used instead.
1236 ['exclude', 'platform/image-decoders/skia/ImageDecoderSkia\\.cpp$'],
1237 ['include', 'platform/image-decoders/cg/ImageDecoderCG\\.cpp$'],
1239 # Again, Skia is not used on Mac.
1240 ['exclude', 'platform/chromium/DragImageChromiumSkia\\.cpp$'],
1243 ['OS!="linux" and OS!="freebsd"', {
1245 ['exclude', '(Gtk|Linux)\\.cpp$'],
1246 ['exclude', 'Harfbuzz[^/]+\\.(cpp|h)$'],
1247 ['exclude', 'VDMX[^/]+\\.(cpp|h)$'],
1251 'sources/': [['exclude', 'Mac\\.(cpp|mm?)$']]
1255 ['exclude', 'Win\\.cpp$'],
1256 ['exclude', '/(Windows|Uniscribe)[^/]*\\.cpp$']
1261 ['exclude', 'Posix\\.cpp$'],
1263 # The Chromium Win currently uses GlyphPageTreeNodeChromiumWin.cpp from
1264 # platform/graphics/chromium, included by regex above, instead.
1265 ['exclude', 'platform/graphics/skia/GlyphPageTreeNodeSkia\\.cpp$']
1268 ['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
1270 ['include', 'platform/audio/mkl/FFTFrameMKL\\.cpp$'],
1276 'target_name': 'webcore_remaining',
1277 'type': '<(library)',
1279 'webcore_prerequisites',
1281 # This is needed for mac because of webkit_system_interface. It'd be nice
1282 # if this hard dependency could be split off the rest.
1283 'hard_dependency': 1,
1285 '<@(webcore_files)',
1288 # Exclude JSC custom bindings.
1289 ['exclude', 'bindings/js'],
1291 # Fortunately, many things can be excluded by using broad patterns.
1293 # Exclude things that don't apply to the Chromium platform on the basis
1294 # of their enclosing directories and tags at the ends of their
1296 ['exclude', '(android|cairo|cf|cg|curl|gtk|haiku|html|linux|mac|opentype|platform|posix|qt|soup|svg|symbian|win|wx)/'],
1297 ['exclude', '(?<!Chromium)(Android|Cairo|CF|CG|Curl|Gtk|Linux|Mac|OpenType|POSIX|Posix|Qt|Safari|Soup|Symbian|Win|Wx)\\.(cpp|mm?)$'],
1299 # Exclude most of SVG except css and javascript bindings.
1300 ['exclude', 'rendering/style/SVG[^/]+.(cpp|h)$'],
1301 ['exclude', 'rendering/RenderSVG[^/]+.(cpp|h)$'],
1302 ['exclude', 'rendering/SVG[^/]+.(cpp|h)$'],
1305 ['exclude', 'inspector/JavaScript[^/]*\\.cpp$'],
1307 # ENABLE_OFFLINE_WEB_APPLICATIONS, exclude most of webcore's impl
1308 ['exclude', 'loader/appcache/'],
1309 ['include', 'loader/appcache/ApplicationCacheHost\.h$'],
1310 ['include', 'loader/appcache/DOMApplicationCache\.(h|cpp)$'],
1312 # Exclude some DB-related files.
1313 ['exclude', 'storage/DatabaseTracker\\.cpp$'],
1314 ['exclude', 'storage/DatabaseTrackerClient\\.h$'],
1315 ['exclude', 'storage/OriginQuotaManager\\.(cpp|h)$'],
1316 ['exclude', 'storage/OriginUsageRecord\\.(cpp|h)$'],
1317 ['exclude', 'storage/SQLTransactionClient\\.cpp$'],
1319 # Don't build StorageNamespace. We have our own implementation.
1320 ['exclude', 'storage/StorageNamespace\\.cpp$'],
1322 # Don't build StorageEventDispatcher. We have our own implementation.
1323 ['exclude', 'storage/StorageEventDispatcher\\.cpp$'],
1325 # Don't build IDBFactoryBackendInterface. We have our own implementation.
1326 ['exclude', 'storage/IDBFactoryBackendInterface\\.cpp$'],
1328 # Don't build IDBKeyPathBackendImpl. We have our own implementation.
1329 ['exclude', 'storage/IDBKeyPathBackendImpl\\.cpp$'],
1331 # Use loader/icon/IconDatabaseNone.cpp instead.
1332 ['exclude', 'loader/icon/IconDatabase\\.cpp$'],
1334 # Exclude some, but not all, of plugins.
1335 ['exclude', 'plugins/PluginDatabase\\.cpp$'],
1336 ['exclude', 'plugins/PluginMainThreadScheduler\\.cpp$'],
1337 ['exclude', 'plugins/PluginPackage\\.cpp$'],
1338 ['exclude', 'plugins/PluginStream\\.cpp$'],
1339 ['exclude', 'plugins/PluginView\\.cpp$'],
1340 ['exclude', 'plugins/npapi\\.cpp$'],
1342 # FIXME: I don't know exactly why these are excluded. It would
1343 # be nice to provide more explicit comments. Some of these do actually
1345 ['exclude', 'dom/StaticStringList\\.cpp$'],
1346 ['exclude', 'loader/UserStyleSheetLoader\\.cpp$'],
1348 # We use a multi-process version from the WebKit API.
1349 ['exclude', 'dom/default/PlatformMessagePortChannel\\.(cpp|h)$'],
1352 'mac_bundle_resources': [
1353 '../Resources/aliasCursor.png',
1354 '../Resources/cellCursor.png',
1355 '../Resources/contextMenuCursor.png',
1356 '../Resources/copyCursor.png',
1357 '../Resources/crossHairCursor.png',
1358 '../Resources/eastResizeCursor.png',
1359 '../Resources/eastWestResizeCursor.png',
1360 '../Resources/helpCursor.png',
1361 '../Resources/linkCursor.png',
1362 '../Resources/missingImage.png',
1363 '../Resources/moveCursor.png',
1364 '../Resources/noDropCursor.png',
1365 '../Resources/noneCursor.png',
1366 '../Resources/northEastResizeCursor.png',
1367 '../Resources/northEastSouthWestResizeCursor.png',
1368 '../Resources/northResizeCursor.png',
1369 '../Resources/northSouthResizeCursor.png',
1370 '../Resources/northWestResizeCursor.png',
1371 '../Resources/northWestSouthEastResizeCursor.png',
1372 '../Resources/notAllowedCursor.png',
1373 '../Resources/progressCursor.png',
1374 '../Resources/southEastResizeCursor.png',
1375 '../Resources/southResizeCursor.png',
1376 '../Resources/southWestResizeCursor.png',
1377 '../Resources/verticalTextCursor.png',
1378 '../Resources/waitCursor.png',
1379 '../Resources/westResizeCursor.png',
1380 '../Resources/zoomInCursor.png',
1381 '../Resources/zoomOutCursor.png',
1387 ['exclude', 'Posix\\.cpp$'],
1388 ['include', '/opentype/'],
1389 ['include', '/ScrollAnimatorWin\\.cpp$'],
1390 ['include', '/ScrollAnimatorWin\\.h$'],
1391 ['include', '/SkiaFontWin\\.cpp$'],
1392 ['include', '/TransparencyWin\\.cpp$'],
1397 # RenderThemeChromiumSkia is not used on mac since RenderThemeChromiumMac
1398 # does not reference the Skia code that is used by Windows and Linux.
1399 ['exclude', 'rendering/RenderThemeChromiumSkia\\.cpp$'],
1402 ['(OS=="linux" or OS=="freebsd" or OS=="openbsd") and gcc_version==42', {
1403 # Due to a bug in gcc 4.2.1 (the current version on hardy), we get
1404 # warnings about uninitialized this.7.
1405 'cflags': ['-Wno-uninitialized'],
1407 ['OS!="linux" and OS!="freebsd"', {
1409 ['exclude', '(Gtk|Linux)\\.cpp$'],
1413 'sources/': [['exclude', 'Mac\\.(cpp|mm?)$']]
1417 ['exclude', 'Win\\.cpp$'],
1418 ['exclude', '/(Windows|Uniscribe)[^/]*\\.cpp$']
1424 'target_name': 'webcore',
1429 'webcore_remaining',
1432 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
1433 '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
1434 '<(chromium_src_dir)/skia/skia.gyp:skia',
1435 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
1437 'export_dependent_settings': [
1439 '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
1440 '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
1441 '<(chromium_src_dir)/skia/skia.gyp:skia',
1442 '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi',
1444 'direct_dependent_settings': {
1446 '<@(webcore_include_dirs)',
1448 'mac_framework_dirs': [
1449 '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework/Frameworks',
1450 '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
1451 '$(SDKROOT)/System/Library/Frameworks/CoreServices.framework',
1452 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
1453 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
1454 '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
1455 '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework',
1456 '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
1460 ['javascript_engine=="v8"', {
1462 '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
1464 'export_dependent_settings': [
1465 '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
1469 'direct_dependent_settings': {
1471 '../../../WebKitLibraries',
1472 '../../../Source/WebKit/mac/WebCoreSupport',
1477 'direct_dependent_settings': {
1478 'include_dirs+++': ['../dom'],
1481 ['OS=="win" and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
1482 # FIXME: (kbr) figure out how to make these dependencies
1483 # work in a cross-platform way. Attempts to use
1484 # "link_settings" and "libraries" in conjunction with the
1485 # msvs-specific settings didn't work so far.
1486 'all_dependent_settings': {
1489 'AdditionalLibraryDirectories': [
1490 # This is a hack to make this directory correct
1491 # relative to targets like chrome_dll. Should use
1492 # <(chromium_src_dir).
1493 '../third_party/mkl/lib/win/ia32',
1495 'AdditionalDependencies': [
1497 'mkl_sequential.lib',