1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 { 6 'variables': { 7 'chromium_code': 1, # Use higher warning level. 8 }, 9 'target_defaults': { 10 'conditions': [ 11 # Linux shared libraries should always be built -fPIC. 12 # 13 # TODO(ajwong): For internal pepper plugins, which are statically linked 14 # into chrome, do we want to build w/o -fPIC? If so, how can we express 15 # that in the build system? 16 ['os_posix==1 and OS!="android" and OS!="mac"', { 17 'cflags': ['-fPIC', '-fvisibility=hidden'], 18 19 # This is needed to make the Linux shlib build happy. Without this, 20 # -fvisibility=hidden gets stripped by the exclusion in common.gypi 21 # that is triggered when a shared library build is specified. 22 'cflags/': [['include', '^-fvisibility=hidden$']], 23 }], 24 ], 25 }, 26 'includes': [ 27 'ppapi_sources.gypi', 28 'ppapi_host.gypi', 29 'ppapi_ipc.gypi', 30 'ppapi_proxy.gypi', 31 'ppapi_shared.gypi', 32 'ppapi_tests.gypi', 33 ], 34 'targets': [ 35 { 36 'target_name': 'ppapi_shared', 37 'type': '<(component)', 38 'variables': { 39 # Set the ppapi_shared_target variable, so that we will pull in the 40 # sources from ppapi_shared.gypi (and only from there). We follow the 41 # same pattern for the other targets defined within this file. 42 'ppapi_shared_target': 1, 43 }, 44 'dependencies': [ 45 '../base/base.gyp:base', 46 '../base/base.gyp:base_i18n', 47 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 48 '../gpu/command_buffer/command_buffer.gyp:gles2_utils', 49 '../gpu/gpu.gyp:command_buffer_client', 50 '../gpu/gpu.gyp:gles2_implementation', 51 '../ipc/ipc.gyp:ipc', 52 '../media/media.gyp:shared_memory_support', 53 '../skia/skia.gyp:skia', 54 '../third_party/icu/icu.gyp:icuuc', 55 '../ui/surface/surface.gyp:surface', 56 '../url/url.gyp:url_lib', 57 'ppapi.gyp:ppapi_c', 58 ], 59 'export_dependent_settings': [ 60 '../base/base.gyp:base', 61 ], 62 'conditions': [ 63 ['OS=="mac"', { 64 'link_settings': { 65 'libraries': [ 66 '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', 67 ], 68 }, 69 }], 70 ['chrome_multiple_dll==1', { 71 'dependencies': [ 72 '../third_party/WebKit/public/blink.gyp:blink_minimal', 73 ], 74 'export_dependent_settings': [ 75 '../third_party/WebKit/public/blink.gyp:blink_minimal', 76 ], 77 }, { 78 'dependencies': [ 79 '../third_party/WebKit/public/blink.gyp:blink', 80 ], 81 'export_dependent_settings': [ 82 '../third_party/WebKit/public/blink.gyp:blink', 83 ], 84 }], 85 ], 86 # Disable c4267 warnings until we fix size_t to int truncations. 87 'msvs_disabled_warnings': [ 4267, ], 88 }, 89 ], 90 'conditions': [ 91 ['component=="static_library"', { 92 # In a static build, build ppapi_ipc separately. 93 'targets': [ 94 { 95 'target_name': 'ppapi_ipc', 96 'type': 'static_library', 97 'variables': { 98 'ppapi_ipc_target': 1, 99 }, 100 'dependencies': [ 101 '../base/base.gyp:base', 102 '../gpu/gpu.gyp:gpu_ipc', 103 '../ipc/ipc.gyp:ipc', 104 '../skia/skia.gyp:skia', 105 'ppapi.gyp:ppapi_c', 106 'ppapi_shared', 107 ], 108 'all_dependent_settings': { 109 'include_dirs': [ 110 '..', 111 ], 112 }, 113 }, 114 { 115 'target_name': 'ppapi_proxy', 116 'type': 'static_library', 117 'variables': { 118 'ppapi_proxy_target': 1, 119 }, 120 'dependencies': [ 121 '../base/base.gyp:base', 122 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 123 '../gpu/gpu.gyp:gles2_implementation', 124 '../gpu/gpu.gyp:gpu_ipc', 125 '../media/media.gyp:shared_memory_support', 126 '../ipc/ipc.gyp:ipc', 127 '../skia/skia.gyp:skia', 128 '../third_party/icu/icu.gyp:icuuc', 129 '../third_party/icu/icu.gyp:icui18n', 130 '../ui/surface/surface.gyp:surface', 131 'ppapi.gyp:ppapi_c', 132 'ppapi_shared', 133 'ppapi_ipc', 134 ], 135 'all_dependent_settings': { 136 'include_dirs': [ 137 '..', 138 ], 139 }, 140 # Disable c4267 warnings until we fix size_t to int truncations. 141 'msvs_disabled_warnings': [ 4267, ], 142 'conditions': [ 143 ['chrome_multiple_dll==1', { 144 'dependencies': [ 145 '../third_party/WebKit/public/blink.gyp:blink_minimal', 146 ], 147 }, { 148 'dependencies': [ 149 '../third_party/WebKit/public/blink.gyp:blink', 150 ], 151 }], 152 ], 153 }, 154 ], 155 }, 156 { # component != static_library 157 # In the component build, we'll just build ppapi_ipc in to ppapi_proxy. 158 'targets': [ 159 { 160 'target_name': 'ppapi_proxy', 161 'type': 'shared_library', 162 'variables': { 163 # Setting both variables means we pull in the sources from both 164 # ppapi_ipc.gypi and ppapi_proxy.gypi. 165 'ppapi_ipc_target': 1, 166 'ppapi_proxy_target': 1, 167 }, 168 'dependencies': [ 169 '../base/base.gyp:base', 170 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 171 '../gpu/gpu.gyp:gles2_implementation', 172 '../gpu/gpu.gyp:gpu_ipc', 173 '../media/media.gyp:shared_memory_support', 174 '../ipc/ipc.gyp:ipc', 175 '../skia/skia.gyp:skia', 176 '../third_party/icu/icu.gyp:icuuc', 177 '../third_party/icu/icu.gyp:icui18n', 178 '../ui/surface/surface.gyp:surface', 179 'ppapi.gyp:ppapi_c', 180 'ppapi_shared', 181 ], 182 'all_dependent_settings': { 183 'include_dirs': [ 184 '..', 185 ], 186 }, 187 # Disable c4267 warnings until we fix size_t to int truncations. 188 'msvs_disabled_warnings': [ 4267, ], 189 'conditions': [ 190 ['chrome_multiple_dll==1', { 191 'dependencies': [ 192 '../third_party/WebKit/public/blink.gyp:blink_minimal', 193 ], 194 }, { 195 'dependencies': [ 196 '../third_party/WebKit/public/blink.gyp:blink', 197 ], 198 }], 199 ], 200 }, 201 { 202 # In component build, this is just a phony target that makes sure 203 # ppapi_proxy is built, since that's where the ipc sources go in the 204 # component build. 205 'target_name': 'ppapi_ipc', 206 'type': 'none', 207 'dependencies': [ 208 'ppapi_proxy', 209 ], 210 }, 211 ], 212 }], 213 ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', { 214 # In windows builds, we also want to define some targets to build in 215 # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit 216 # Windows). 217 'targets': [ 218 { 219 'target_name': 'ppapi_shared_win64', 220 'type': '<(component)', 221 'variables': { 222 'nacl_win64_target': 1, 223 'ppapi_shared_target': 1, 224 }, 225 'dependencies': [ 226 'ppapi.gyp:ppapi_c', 227 '../base/base.gyp:base_nacl_win64', 228 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64', 229 '../ipc/ipc.gyp:ipc_win64', 230 ], 231 'defines': [ 232 '<@(nacl_win64_defines)', 233 ], 234 'export_dependent_settings': [ 235 '../base/base.gyp:base_nacl_win64', 236 ], 237 'configurations': { 238 'Common_Base': { 239 'msvs_target_platform': 'x64', 240 }, 241 }, 242 }, 243 { 244 'target_name': 'ppapi_ipc_win64', 245 'type': 'static_library', 246 'variables': { 247 'nacl_win64_target': 1, 248 'ppapi_ipc_target': 1, 249 }, 250 'dependencies': [ 251 '../base/base.gyp:base_nacl_win64', 252 '../ipc/ipc.gyp:ipc_win64', 253 '../gpu/gpu.gyp:gpu_ipc_win64', 254 'ppapi.gyp:ppapi_c', 255 'ppapi_shared_win64', 256 ], 257 'export_dependent_settings': [ 258 '../gpu/gpu.gyp:gpu_ipc_win64', 259 ], 260 'defines': [ 261 '<@(nacl_win64_defines)', 262 ], 263 'all_dependent_settings': { 264 'include_dirs': [ 265 '..', 266 ], 267 }, 268 'configurations': { 269 'Common_Base': { 270 'msvs_target_platform': 'x64', 271 }, 272 }, 273 }], 274 }], 275 ], 276 } 277