1 # 2 # Copyright (C) 2011 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': [ 33 '../bindings/bindings.gypi', 34 '../core/core.gypi', 35 '../build/features.gypi', 36 '../build/scripts/scripts.gypi', 37 '../build/win/precompile.gypi', 38 '../modules/modules.gypi', 39 '../platform/blink_platform.gypi', 40 '../wtf/wtf.gypi', 41 'web.gypi', 42 ], 43 'targets': [ 44 { 45 'target_name': 'blink_web', 46 'type': '<(component)', 47 'variables': { 'enable_wexit_time_destructors': 1, }, 48 'dependencies': [ 49 '../config.gyp:config', 50 '../platform/blink_platform.gyp:blink_common', 51 '../core/core.gyp:webcore', 52 '../modules/modules.gyp:modules', 53 '<(DEPTH)/skia/skia.gyp:skia', 54 '<(angle_path)/src/build_angle.gyp:translator', 55 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 56 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', 57 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 58 ], 59 'export_dependent_settings': [ 60 '<(DEPTH)/skia/skia.gyp:skia', 61 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 62 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', 63 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 64 ], 65 'include_dirs': [ 66 '<(angle_path)/include', 67 '<(DEPTH)/third_party/skia/include/utils', 68 ], 69 'defines': [ 70 'BLINK_IMPLEMENTATION=1', 71 'INSIDE_BLINK', 72 ], 73 'sources': [ 74 '<@(web_files)', 75 ], 76 'conditions': [ 77 ['component=="shared_library"', { 78 'dependencies': [ 79 '../core/core.gyp:webcore_generated', 80 '../core/core.gyp:webcore_testing', 81 '../modules/modules.gyp:modules_testing', 82 '../wtf/wtf_tests.gyp:wtf_unittest_helpers', 83 '<(DEPTH)/base/base.gyp:test_support_base', 84 '<(DEPTH)/testing/gmock.gyp:gmock', 85 '<(DEPTH)/testing/gtest.gyp:gtest', 86 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 87 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 88 '<(DEPTH)/third_party/libpng/libpng.gyp:libpng', 89 '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp', 90 '<(DEPTH)/third_party/libxml/libxml.gyp:libxml', 91 '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt', 92 '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64', 93 '<(DEPTH)/third_party/ots/ots.gyp:ots', 94 '<(DEPTH)/third_party/zlib/zlib.gyp:zlib', 95 '<(DEPTH)/url/url.gyp:url_lib', 96 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 97 '<(libjpeg_gyp_path):libjpeg', 98 # We must not add webkit_support here because of cyclic dependency. 99 ], 100 'export_dependent_settings': [ 101 '<(DEPTH)/url/url.gyp:url_lib', 102 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 103 ], 104 'sources': [ 105 # Compile Blink unittest files into blink_web.dll in component build mode 106 # since there're methods that are tested but not exported. 107 # WebUnitTests.* exports an API that runs all the unittests inside 108 # blink_web.dll. 109 '<@(bindings_unittest_files)', 110 '<@(core_unittest_files)', 111 '<@(modules_unittest_files)', 112 # FIXME: the next line should not be needed. We prefer to run these unit tests outside blink_web.dll. 113 '<@(platform_web_unittest_files)', 114 '<@(web_unittest_files)', 115 'WebTestingSupport.cpp', 116 'tests/WebUnitTests.cpp', # Components test runner support. 117 ], 118 'conditions': [ 119 ['OS=="win" or OS=="mac"', { 120 'dependencies': [ 121 '<(DEPTH)/third_party/nss/nss.gyp:*', 122 ], 123 }], 124 ['clang==1', { 125 # FIXME: It would be nice to enable this in shared builds too, 126 # but the test files have global constructors from the GTEST macro 127 # and we pull in the test files into the blink_web target in the 128 # shared build. 129 'cflags!': ['-Wglobal-constructors'], 130 'xcode_settings': { 131 'WARNING_CFLAGS!': ['-Wglobal-constructors'], 132 }, 133 }], 134 ], 135 'msvs_settings': { 136 'VCLinkerTool': { 137 'conditions': [ 138 ['incremental_chrome_dll==1', { 139 'UseLibraryDependencyInputs': "true", 140 }], 141 ], 142 }, 143 }, 144 }], 145 ['OS == "linux"', { 146 'dependencies': [ 147 '<(DEPTH)/build/linux/system.gyp:fontconfig', 148 ], 149 }, { 150 'sources/': [ 151 ['exclude', 'linux/'], 152 ], 153 }], 154 ['use_x11 == 1', { 155 'dependencies': [ 156 '<(DEPTH)/build/linux/system.gyp:x11', 157 ], 158 }, { 159 'sources/': [ 160 ['exclude', 'x11/'], 161 ] 162 }], 163 ['OS!="android"', { 164 'sources/': [ 165 ['exclude', 'WebInputEventFactoryAndroid.cpp$'], 166 ], 167 }], 168 ['OS=="mac"', { 169 'link_settings': { 170 'libraries': [ 171 '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework', 172 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', 173 ], 174 }, 175 }, { # else: OS!="mac" 176 'sources/': [ 177 ['exclude', 'WebInputEventFactoryMac.mm$'], 178 ['exclude', 'mac/WebScrollbarTheme.cpp$'], 179 ], 180 }], 181 ['OS!="win"', { 182 'sources/': [ 183 ['exclude', 'WebInputEventFactoryWin.cpp$'], 184 ], 185 }], 186 ['use_default_render_theme==0', { 187 'sources/': [ 188 ['exclude', 'default/WebRenderTheme.cpp'], 189 ], 190 }], 191 ], 192 'direct_dependent_settings': { 193 'include_dirs': [ 194 '../../', 195 ], 196 }, 197 'target_conditions': [ 198 ['OS=="android"', { 199 'sources/': [ 200 ['include', '^linux/WebFontRendering\\.cpp$'], 201 ], 202 }], 203 ], 204 'actions': [ 205 { 206 'action_name': 'PickerCommon', 207 'process_outputs_as_sources': 1, 208 'variables': { 209 'resources': [ 210 'resources/pickerCommon.css', 211 'resources/pickerCommon.js', 212 ], 213 }, 214 'inputs': [ 215 '../build/scripts/make-file-arrays.py', 216 '<@(resources)', 217 ], 218 'outputs': [ 219 '<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.h', 220 '<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.cpp', 221 ], 222 'action': [ 223 'python', 224 '../build/scripts/make-file-arrays.py', 225 '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.h', 226 '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/PickerCommon.cpp', 227 '<@(resources)', 228 ], 229 }, 230 { 231 'action_name': 'CalendarPicker', 232 'process_outputs_as_sources': 1, 233 'variables': { 234 'resources': [ 235 'resources/calendarPicker.css', 236 'resources/calendarPicker.js', 237 'resources/pickerButton.css', 238 'resources/suggestionPicker.css', 239 'resources/suggestionPicker.js', 240 ], 241 }, 242 'inputs': [ 243 '../build/scripts/make-file-arrays.py', 244 '<@(resources)' 245 ], 246 'outputs': [ 247 '<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.h', 248 '<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.cpp', 249 ], 250 'action': [ 251 'python', 252 '../build/scripts/make-file-arrays.py', 253 '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.h', 254 '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/CalendarPicker.cpp', 255 '<@(resources)', 256 ], 257 }, 258 { 259 'action_name': 'ColorSuggestionPicker', 260 'process_outputs_as_sources': 1, 261 'variables': { 262 'resources': [ 263 'resources/colorSuggestionPicker.css', 264 'resources/colorSuggestionPicker.js', 265 ], 266 }, 267 'inputs': [ 268 '../build/scripts/make-file-arrays.py', 269 '<@(resources)', 270 ], 271 'outputs': [ 272 '<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.h', 273 '<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.cpp', 274 ], 275 'action': [ 276 'python', 277 '../build/scripts/make-file-arrays.py', 278 '--out-h=<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.h', 279 '--out-cpp=<(SHARED_INTERMEDIATE_DIR)/blink/ColorSuggestionPicker.cpp', 280 '<@(resources)', 281 ], 282 }, 283 ], 284 }, 285 { 286 'target_name': 'blink_web_test_support', 287 'conditions': [ 288 ['component=="shared_library"', { 289 'type': 'none', 290 }, { 291 'type': 'static_library', 292 'dependencies': [ 293 '../config.gyp:config', 294 '../core/core.gyp:webcore_testing', 295 '../modules/modules.gyp:modules_testing', 296 '../wtf/wtf.gyp:wtf', 297 '<(DEPTH)/skia/skia.gyp:skia', 298 ], 299 'include_dirs': [ 300 '../../', 301 ], 302 'sources': [ 303 'WebTestingSupport.cpp', 304 ], 305 }], 306 ], 307 }, 308 ], # targets 309 'conditions': [ 310 ['gcc_version>=46', { 311 'target_defaults': { 312 # Disable warnings about c++0x compatibility, as some names (such 313 # as nullptr) conflict with upcoming c++0x types. 314 'cflags_cc': ['-Wno-c++0x-compat'], 315 }, 316 }], 317 ['OS=="mac"', { 318 'targets': [ 319 { 320 'target_name': 'copy_mesa', 321 'type': 'none', 322 'dependencies': ['<(DEPTH)/third_party/mesa/mesa.gyp:osmesa'], 323 'copies': [{ 324 'destination': '<(PRODUCT_DIR)/DumpRenderTree.app/Contents/MacOS/', 325 'files': ['<(PRODUCT_DIR)/osmesa.so'], 326 }], 327 }, 328 ], 329 }], 330 ['clang==1', { 331 'target_defaults': { 332 'cflags': ['-Wglobal-constructors'], 333 'xcode_settings': { 334 'WARNING_CFLAGS': ['-Wglobal-constructors'], 335 }, 336 }, 337 }], 338 ], # conditions 339 } 340