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 'variables': { 33 'blink_web_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/web', 34 }, 35 'includes': [ 36 '../bindings/bindings.gypi', 37 '../core/core.gypi', 38 '../build/features.gypi', 39 '../build/scripts/scripts.gypi', 40 '../build/win/precompile.gypi', 41 '../modules/modules.gypi', 42 '../platform/blink_platform.gypi', 43 '../wtf/wtf.gypi', 44 'web.gypi', 45 ], 46 'target_defaults': { 47 'variables': { 48 'clang_warning_flags': ['-Wglobal-constructors'], 49 }, 50 }, 51 'targets': [ 52 { 53 'target_name': 'blink_web', 54 'type': '<(component)', 55 'variables': { 'enable_wexit_time_destructors': 1, }, 56 'dependencies': [ 57 '../config.gyp:config', 58 '../platform/blink_platform.gyp:blink_common', 59 '../core/core.gyp:webcore', 60 '../modules/modules.gyp:modules', 61 '<(DEPTH)/skia/skia.gyp:skia', 62 '<(angle_path)/src/build_angle.gyp:translator', 63 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 64 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', 65 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 66 ], 67 'export_dependent_settings': [ 68 '<(DEPTH)/skia/skia.gyp:skia', 69 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 70 '<(DEPTH)/third_party/npapi/npapi.gyp:npapi', 71 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 72 ], 73 'include_dirs': [ 74 '<(angle_path)/include', 75 '<(DEPTH)/third_party/skia/include/utils', 76 ], 77 'defines': [ 78 'BLINK_IMPLEMENTATION=1', 79 'INSIDE_BLINK', 80 ], 81 'sources': [ 82 '<@(web_files)', 83 ], 84 'conditions': [ 85 ['component=="shared_library"', { 86 'dependencies': [ 87 '../core/core.gyp:webcore_generated', 88 '../core/core.gyp:webcore_testing', 89 '../modules/modules.gyp:modules_testing', 90 '../wtf/wtf_tests.gyp:wtf_unittest_helpers', 91 '<(DEPTH)/base/base.gyp:test_support_base', 92 '<(DEPTH)/testing/gmock.gyp:gmock', 93 '<(DEPTH)/testing/gtest.gyp:gtest', 94 '<(DEPTH)/third_party/icu/icu.gyp:icuuc', 95 '<(DEPTH)/third_party/icu/icu.gyp:icui18n', 96 '<(DEPTH)/third_party/libpng/libpng.gyp:libpng', 97 '<(DEPTH)/third_party/libwebp/libwebp.gyp:libwebp', 98 '<(DEPTH)/third_party/libxml/libxml.gyp:libxml', 99 '<(DEPTH)/third_party/libxslt/libxslt.gyp:libxslt', 100 '<(DEPTH)/third_party/modp_b64/modp_b64.gyp:modp_b64', 101 '<(DEPTH)/third_party/ots/ots.gyp:ots', 102 '<(DEPTH)/third_party/zlib/zlib.gyp:zlib', 103 '<(DEPTH)/url/url.gyp:url_lib', 104 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 105 '<(libjpeg_gyp_path):libjpeg', 106 # We must not add webkit_support here because of cyclic dependency. 107 ], 108 'export_dependent_settings': [ 109 '<(DEPTH)/url/url.gyp:url_lib', 110 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8', 111 ], 112 'variables': { 113 'clang_warning_flags_unset': [ 114 # FIXME: It would be nice to enable this in shared builds too, 115 # but the test files have global constructors from the GTEST macro 116 # and we pull in the test files into the blink_web target in the 117 # shared build. 118 '-Wglobal-constructors', 119 ], 120 }, 121 'sources': [ 122 # Compile Blink unittest files into blink_web.dll in component build mode 123 '<@(bindings_unittest_files)', 124 '<@(core_unittest_files)', 125 '<@(modules_unittest_files)', 126 # FIXME: the next line should not be needed. We prefer to run these unit tests outside blink_web.dll. 127 '<@(platform_web_unittest_files)', 128 '<@(web_unittest_files)', 129 'WebTestingSupport.cpp', 130 ], 131 'conditions': [ 132 ['OS=="win" or OS=="mac"', { 133 'dependencies': [ 134 '<(DEPTH)/third_party/nss/nss.gyp:*', 135 ], 136 }], 137 ], 138 'msvs_settings': { 139 'VCLinkerTool': { 140 'conditions': [ 141 ['incremental_chrome_dll==1', { 142 'UseLibraryDependencyInputs': "true", 143 }], 144 ], 145 }, 146 }, 147 }], 148 ['OS == "linux"', { 149 'dependencies': [ 150 '<(DEPTH)/build/linux/system.gyp:fontconfig', 151 ], 152 }, { 153 'sources/': [ 154 ['exclude', 'linux/'], 155 ], 156 }], 157 ['use_x11 == 1', { 158 'dependencies': [ 159 '<(DEPTH)/build/linux/system.gyp:x11', 160 ], 161 }, { 162 'sources/': [ 163 ['exclude', 'x11/'], 164 ] 165 }], 166 ['OS!="android"', { 167 'sources/': [ 168 ['exclude', 'WebInputEventFactoryAndroid.cpp$'], 169 ], 170 }], 171 ['OS=="mac"', { 172 'link_settings': { 173 'libraries': [ 174 '$(SDKROOT)/System/Library/Frameworks/Accelerate.framework', 175 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', 176 ], 177 }, 178 }, { # else: OS!="mac" 179 'sources/': [ 180 ['exclude', 'WebInputEventFactoryMac.mm$'], 181 ['exclude', 'mac/WebScrollbarTheme.cpp$'], 182 ], 183 }], 184 ['OS!="win"', { 185 'sources/': [ 186 ['exclude', 'WebInputEventFactoryWin.cpp$'], 187 ], 188 }], 189 ['use_default_render_theme==0', { 190 'sources/': [ 191 ['exclude', 'default/WebRenderTheme.cpp'], 192 ], 193 }], 194 ], 195 'direct_dependent_settings': { 196 'include_dirs': [ 197 '../../', 198 ], 199 }, 200 'target_conditions': [ 201 ['OS=="android"', { 202 'sources/': [ 203 ['include', '^linux/WebFontRendering\\.cpp$'], 204 ], 205 }], 206 ], 207 }, 208 { 209 # GN version: //third_party/WebKit/Source/web:test_support 210 'target_name': 'blink_web_test_support', 211 'conditions': [ 212 ['component=="shared_library"', { 213 'type': 'none', 214 }, { 215 'type': 'static_library', 216 'dependencies': [ 217 '../config.gyp:config', 218 '../core/core.gyp:webcore_testing', 219 '../modules/modules.gyp:modules_testing', 220 '../wtf/wtf.gyp:wtf', 221 '<(DEPTH)/skia/skia.gyp:skia', 222 ], 223 'include_dirs': [ 224 '../../', 225 ], 226 'sources': [ 227 'WebTestingSupport.cpp', 228 ], 229 }], 230 ], 231 }, 232 ], # targets 233 'conditions': [ 234 ['gcc_version>=46', { 235 'target_defaults': { 236 # Disable warnings about c++0x compatibility, as some names (such 237 # as nullptr) conflict with upcoming c++0x types. 238 'cflags_cc': ['-Wno-c++0x-compat'], 239 }, 240 }], 241 ['OS=="mac"', { 242 'targets': [ 243 { 244 'target_name': 'copy_mesa', 245 'type': 'none', 246 'dependencies': ['<(DEPTH)/third_party/mesa/mesa.gyp:osmesa'], 247 'copies': [{ 248 'destination': '<(PRODUCT_DIR)/DumpRenderTree.app/Contents/MacOS/', 249 'files': ['<(PRODUCT_DIR)/osmesa.so'], 250 }], 251 }, 252 ], 253 }], 254 ], # conditions 255 } 256