• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  'includes': [
3    '../../gyp/common.gypi',
4    '../WebCore.gypi',
5  ],
6  'configurations': {
7    'Production': {
8      'xcode_config_file': '<(project_dir)/Configurations/Base.xcconfig',
9    },
10    'Release': {
11      'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
12      'xcode_settings': {
13        'STRIP_INSTALLED_PRODUCT': 'NO',
14      },
15    },
16    'Debug': {
17      'xcode_config_file': '<(project_dir)/Configurations/DebugRelease.xcconfig',
18      'xcode_settings': {
19        'DEAD_CODE_STRIPPING': '$(DEAD_CODE_STRIPPING_debug)',
20        'DEBUG_DEFINES': '$(DEBUG_DEFINES_debug)',
21        'GCC_OPTIMIZATION_LEVEL': '$(GCC_OPTIMIZATION_LEVEL_debug)',
22        'STRIP_INSTALLED_PRODUCT': '$(STRIP_INSTALLED_PRODUCT_debug)',
23      },
24    },
25  },
26  'targets': [
27    {
28      'target_name': 'WebCore',
29      'type': 'shared_library',
30      'dependencies': [
31        'Derived Sources',
32        'Update Version',
33        # FIXME: Add 'Copy Generated Headers',
34        # FIXME: Add 'Copy Forwarding and ICU Headers',
35        # FIXME: Add 'Copy Inspector Resources',
36      ],
37      'include_dirs': [
38        '<(project_dir)',
39        '<(project_dir)/icu',
40        '<(project_dir)/ForwardingHeaders',
41        '<(PRODUCT_DIR)/usr/local/include',
42        '/usr/include/libxml2',
43        '<(PRODUCT_DIR)/DerivedSources',
44        '<(PRODUCT_DIR)/DerivedSources/WebCore',
45      ],
46      'sources': [
47        '<@(webcore_files)',
48        '<@(webcore_privateheader_files)',
49        '<@(webcore_derived_source_files)',
50        '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework',
51        '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
52        '$(SDKROOT)/System/Library/Frameworks/AudioToolbox.framework',
53        '$(SDKROOT)/System/Library/Frameworks/AudioUnit.framework',
54        '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
55        '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework',
56        '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
57        '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
58        '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
59        '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
60        '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
61        '<(PRODUCT_DIR)/JavaScriptCore.framework',
62        'libicucore.dylib',
63        'libobjc.dylib',
64        'libxml2.dylib',
65        'libz.dylib',
66      ],
67      'sources/': [
68        ['exclude', 'bindings/[^/]+/'],
69        ['include', 'bindings/generic/'],
70        ['include', 'bindings/js/'],
71        ['include', 'bindings/objc/'],
72
73        # FIXME: This could should move to Source/ThirdParty.
74        ['exclude', 'thirdparty/'],
75
76        # FIXME: Figure out how to store these patterns in a variable.
77        ['exclude', '(android|brew|cairo|chromium|curl|efl|freetype|fftw|gstreamer|gtk|haiku|linux|mkl|openvg|pango|qt|skia|soup|symbian|texmap|iphone|v8|win|wince|wx)/'],
78        ['exclude', '(Android|Brew|Cairo|Curl|Chromium|Efl|Haiku|Gtk|Linux|OpenType|Qt|Safari|Soup|Symbian|V8|Win|WinCE|Wx)\\.(cpp|mm?)$'],
79        ['exclude', 'Chromium[^/]*\\.(cpp|mm?)$'],
80
81        ['exclude', 'platform/image-decoders/'],
82        ['exclude', 'platform/image-encoders/'],
83
84        ['exclude', 'bridge/testbindings\\.cpp$'], # Remove from GYPI?
85        ['exclude', 'bridge/testbindings\\.mm$'], # Remove from GYPI?
86        ['exclude', 'bridge/testqtbindings\\.cpp$'], # Remove from GYPI?
87        ['exclude', 'platform/KillRingNone\\.cpp$'],
88        ['exclude', 'platform/graphics/cg/FontPlatformData\\.h$'],
89        ['exclude', 'platform/graphics/gpu/LoopBlinnPathProcessor\\.(cpp|h)$'],
90        ['exclude', 'platform/graphics/gpu/LoopBlinnLocalTriangulator\\.(cpp|h)$'],
91        ['exclude', 'platform/graphics/gpu/LoopBlinnPathCache\\.(cpp|h)$'],
92        ['exclude', 'platform/graphics/gpu/LoopBlinnShader\\.(cpp|h)$'],
93        ['exclude', 'platform/graphics/gpu/LoopBlinnSolidFillShader\\.(cpp|h)$'],
94        # FIXME: Consider excluding GL as a suffix.
95        ['exclude', 'platform/graphics/ImageSource\\.cpp$'],
96        ['exclude', 'platform/graphics/opengl/TextureMapperGL\\.cpp$'],
97        ['exclude', 'platform/graphics/opentype/OpenTypeUtilities\\.(cpp|h)$'],
98        ['exclude', 'platform/posix/SharedBufferPOSIX\\.cpp$'],
99        ['exclude', 'platform/text/Hyphenation\\.cpp$'],
100        ['exclude', 'platform/text/LocalizedNumberICU\\.cpp$'],
101        ['exclude', 'platform/text/LocalizedNumberNone\\.cpp$'],
102        ['exclude', 'platform/text/TextEncodingDetectorNone\\.cpp$'],
103        ['exclude', 'plugins/PluginDataNone\\.cpp$'],
104        ['exclude', 'plugins/PluginDatabase\\.cpp$'],
105        ['exclude', 'plugins/PluginPackageNone\\.cpp$'],
106        ['exclude', 'plugins/PluginPackage\\.cpp$'],
107        ['exclude', 'plugins/PluginStream\\.cpp$'],
108        ['exclude', 'plugins/PluginView\\.cpp$'],
109        ['exclude', 'plugins/mac/PluginPackageMac\\.cpp$'],
110        ['exclude', 'plugins/mac/PluginViewMac\\.mm$'],
111        ['exclude', 'plugins/npapi\\.cpp$'],
112
113        # FIXME: Check whether we need to build these derived source files.
114        ['exclude', 'JSAbstractView\\.(cpp|h)'],
115        ['exclude', 'JSElementTimeControl\\.(cpp|h)'],
116        ['exclude', 'JSMathMLElementWrapperFactory\\.(cpp|h)'],
117        ['exclude', 'JSSVGExternalResourcesRequired\\.(cpp|h)'],
118        ['exclude', 'JSSVGFilterPrimitiveStandardAttributes\\.(cpp|h)'],
119        ['exclude', 'JSSVGFitToViewBox\\.(cpp|h)'],
120        ['exclude', 'JSSVGLangSpace\\.(cpp|h)'],
121        ['exclude', 'JSSVGLocatable\\.(cpp|h)'],
122        ['exclude', 'JSSVGStylable\\.(cpp|h)'],
123        ['exclude', 'JSSVGTests\\.(cpp|h)'],
124        ['exclude', 'JSSVGTransformable\\.(cpp|h)'],
125        ['exclude', 'JSSVGURIReference\\.(cpp|h)'],
126        ['exclude', 'JSSVGZoomAndPan\\.(cpp|h)'],
127        ['exclude', 'tokenizer\\.cpp'],
128
129        ['exclude', 'AllInOne\\.cpp$'],
130
131        ['exclude', 'rendering/svg/[^/]+\\.cpp'],
132        ['include', 'rendering/svg/RenderSVGAllInOne\\.cpp$'],
133      ],
134      'mac_framework_private_headers': [
135        '<@(webcore_privateheader_files)',
136      ],
137      'mac_bundle_resources': [
138        '<@(webcore_resource_files)',
139      ],
140      'xcode_config_file': '<(project_dir)/Configurations/WebCore.xcconfig',
141      # FIXME: A number of these actions aren't supposed to run if "${ACTION}" = "installhdrs"
142      'postbuilds': [
143        {
144          'postbuild_name': 'Check For Global Initializers',
145          'action': [
146            'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-global-initializers'
147          ],
148        },
149        {
150          'postbuild_name': 'Check For Exit Time Destructors',
151          'action': [
152            'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-exit-time-destructors'
153          ],
154        },
155        {
156          'postbuild_name': 'Check For Weak VTables and Externals',
157          'action': [
158            'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-weak-vtables-and-externals'
159          ],
160        },
161        {
162          'postbuild_name': 'Copy Forwarding and ICU Headers',
163          'action': [
164            'sh', '<(project_dir)/gyp/copy-forwarding-and-icu-headers.sh'
165          ],
166        },
167        {
168          'postbuild_name': 'Copy Inspector Resources',
169          'action': [
170            'sh', '<(project_dir)/gyp/copy-inspector-resources.sh'
171          ],
172        },
173        {
174          'postbuild_name': 'Streamline Inspector Source',
175          'action': [
176            'sh', '<(project_dir)/gyp/streamline-inspector-source.sh'
177          ],
178        },
179        {
180          'postbuild_name': 'Check For Inappropriate Files in Framework',
181          'action': [
182            'sh', '<(project_dir)/gyp/run-if-exists.sh', '<(DEPTH)/../Tools/Scripts/check-for-inappropriate-files-in-framework'
183          ],
184        },
185      ],
186      'conditions': [
187        ['OS=="mac"', {
188          'mac_bundle': 1,
189          'xcode_settings': {
190            # FIXME: Remove these overrides once WebCore.xcconfig is
191            # used only by this project.
192            'GCC_PREFIX_HEADER': '<(project_dir)/WebCorePrefix.h',
193            'INFOPLIST_FILE': '<(project_dir)/Info.plist',
194            'ALWAYS_SEARCH_USER_PATHS': 'NO',
195          },
196        }],
197      ],
198    },
199    {
200      'target_name': 'Derived Sources',
201      'type': 'none',
202      'dependencies': [
203        'WebCoreExportFileGenerator',
204      ],
205      'xcode_config_file': '<(project_dir)/Configurations/WebCore.xcconfig',
206      'actions': [{
207        'action_name': 'Generate Derived Sources',
208        'inputs': [],
209        'outputs': [],
210        'action': [
211          'sh', 'generate-derived-sources.sh',
212        ],
213      }],
214    },
215    {
216      'target_name': 'Update Version',
217      'type': 'none',
218      'actions': [{
219        'action_name': 'Update Info.plist with version information',
220        'inputs': [],
221         'outputs': [],
222         'action': [
223           'sh', '<(project_dir)/gyp/update-info-plist.sh', '<(project_dir)/Info.plist'
224          ]
225      }],
226    },
227    {
228      'target_name': 'WebCoreExportFileGenerator Generator',
229      'type': 'none',
230      'actions': [{
231        'action_name': 'Generate Export File Generator',
232        'inputs': [
233          '<(project_dir)/WebCore.exp.in',
234        ],
235        'outputs': [
236          '<@(export_file_generator_files)',
237        ],
238        'action': [
239          'sh', '<(project_dir)/gyp/generate-webcore-export-file-generator.sh',
240        ],
241      }],
242    },
243    {
244      'target_name': 'WebCoreExportFileGenerator',
245      'type': 'executable',
246      'dependencies': [
247        'WebCoreExportFileGenerator Generator',
248      ],
249      'include_dirs': [
250        '<(project_dir)/ForwardingHeaders',
251      ],
252      'xcode_config_file': '<(project_dir)/Configurations/WebCore.xcconfig',
253      'configurations': {
254        'Production': {
255            'EXPORTED_SYMBOLS_FILE': '',
256            'GCC_OPTIMIZATION_LEVEL': '0',
257            'INSTALL_PATH': '/usr/local/bin',
258            'OTHER_LDFLAGS': '',
259            'SKIP_INSTALL': 'YES',
260        },
261        'Release': {
262          'xcode_settings': {
263            'EXPORTED_SYMBOLS_FILE': '',
264            'GCC_OPTIMIZATION_LEVEL': '0',
265            'INSTALL_PATH': '/usr/local/bin',
266            'OTHER_LDFLAGS': '',
267            'SKIP_INSTALL': 'YES',
268          },
269        },
270        'Debug': {
271          'xcode_settings': {
272            'EXPORTED_SYMBOLS_FILE': '',
273            'GCC_OPTIMIZATION_LEVEL': '0',
274            'INSTALL_PATH': '/usr/local/bin',
275            'OTHER_LDFLAGS': '',
276            'SKIP_INSTALL': 'YES',
277          },
278        },
279      },
280      'sources': [
281        '<@(export_file_generator_files)',
282      ],
283      'conditions': [
284        ['OS=="mac"', {
285          'xcode_settings': {
286            # FIXME: Remove these overrides once WebCore.xcconfig is
287            # used only by this project.
288            'GCC_PREFIX_HEADER': '<(project_dir)/WebCorePrefix.h',
289            'INFOPLIST_FILE': '<(project_dir)/Info.plist',
290          },
291        }],
292      ],
293    },
294  ], # targets
295}
296