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