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 # GN version: //ppapi:ppapi_shared 37 'target_name': 'ppapi_shared', 38 'type': '<(component)', 39 'variables': { 40 # Set the ppapi_shared_target variable, so that we will pull in the 41 # sources from ppapi_shared.gypi (and only from there). We follow the 42 # same pattern for the other targets defined within this file. 43 'ppapi_shared_target': 1, 44 }, 45 'dependencies': [ 46 '../base/base.gyp:base', 47 '../base/base.gyp:base_i18n', 48 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 49 '../gpu/command_buffer/command_buffer.gyp:gles2_utils', 50 '../gpu/gpu.gyp:command_buffer_client', 51 '../gpu/gpu.gyp:gles2_implementation', 52 '../ipc/ipc.gyp:ipc', 53 '../media/media.gyp:shared_memory_support', 54 '../skia/skia.gyp:skia', 55 '../third_party/icu/icu.gyp:icuuc', 56 '../ui/events/events.gyp:events_base', 57 '../ui/surface/surface.gyp:surface', 58 '../url/url.gyp:url_lib', 59 'ppapi.gyp:ppapi_c', 60 ], 61 'export_dependent_settings': [ 62 '../base/base.gyp:base', 63 ], 64 'conditions': [ 65 ['OS=="mac"', { 66 'link_settings': { 67 'libraries': [ 68 '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework', 69 ], 70 }, 71 }], 72 ['chrome_multiple_dll==1', { 73 'dependencies': [ 74 '../third_party/WebKit/public/blink.gyp:blink_minimal', 75 ], 76 'export_dependent_settings': [ 77 '../third_party/WebKit/public/blink.gyp:blink_minimal', 78 ], 79 }, { 80 'dependencies': [ 81 '../third_party/WebKit/public/blink.gyp:blink', 82 ], 83 'export_dependent_settings': [ 84 '../third_party/WebKit/public/blink.gyp:blink', 85 ], 86 }], 87 ], 88 # Disable c4267 warnings until we fix size_t to int truncations. 89 'msvs_disabled_warnings': [ 4267, ], 90 }, 91 ], 92 'conditions': [ 93 ['component=="static_library"', { 94 # In a static build, build ppapi_ipc separately. 95 'targets': [ 96 { 97 # GN version: //ppapi:ppapi_ipc 98 'target_name': 'ppapi_ipc', 99 'type': 'static_library', 100 'variables': { 101 'ppapi_ipc_target': 1, 102 }, 103 'dependencies': [ 104 '../base/base.gyp:base', 105 '../gpu/gpu.gyp:gpu_ipc', 106 '../ipc/ipc.gyp:ipc', 107 '../skia/skia.gyp:skia', 108 '../ui/events/ipc/events_ipc.gyp:events_ipc', 109 'ppapi.gyp:ppapi_c', 110 'ppapi_shared', 111 ], 112 'all_dependent_settings': { 113 'include_dirs': [ 114 '..', 115 ], 116 }, 117 }, 118 { 119 # GN version: //ppapi:ppapi_proxy 120 'target_name': 'ppapi_proxy', 121 'type': 'static_library', 122 'variables': { 123 'ppapi_proxy_target': 1, 124 }, 125 'dependencies': [ 126 '../base/base.gyp:base', 127 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 128 '../gpu/gpu.gyp:gles2_implementation', 129 '../gpu/gpu.gyp:gpu_ipc', 130 '../media/media.gyp:shared_memory_support', 131 '../ipc/ipc.gyp:ipc', 132 '../skia/skia.gyp:skia', 133 '../third_party/icu/icu.gyp:icuuc', 134 '../third_party/icu/icu.gyp:icui18n', 135 '../ui/events/events.gyp:events_base', 136 '../ui/surface/surface.gyp:surface', 137 'ppapi.gyp:ppapi_c', 138 'ppapi_shared', 139 'ppapi_ipc', 140 ], 141 'all_dependent_settings': { 142 'include_dirs': [ 143 '..', 144 ], 145 }, 146 # Disable c4267 warnings until we fix size_t to int truncations. 147 'msvs_disabled_warnings': [ 4267, ], 148 'conditions': [ 149 ['chrome_multiple_dll==1', { 150 'dependencies': [ 151 '../third_party/WebKit/public/blink.gyp:blink_minimal', 152 ], 153 }, { 154 'dependencies': [ 155 '../third_party/WebKit/public/blink.gyp:blink', 156 ], 157 }], 158 ], 159 }, 160 ], 161 }, 162 { # component != static_library 163 # In the component build, we'll just build ppapi_ipc in to ppapi_proxy. 164 'targets': [ 165 { 166 # GN version: //ppapi:ppapi_proxy 167 'target_name': 'ppapi_proxy', 168 'type': 'shared_library', 169 'variables': { 170 # Setting both variables means we pull in the sources from both 171 # ppapi_ipc.gypi and ppapi_proxy.gypi. 172 'ppapi_ipc_target': 1, 173 'ppapi_proxy_target': 1, 174 }, 175 'dependencies': [ 176 '../base/base.gyp:base', 177 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 178 '../gpu/gpu.gyp:gles2_implementation', 179 '../gpu/gpu.gyp:gpu_ipc', 180 '../media/media.gyp:shared_memory_support', 181 '../ipc/ipc.gyp:ipc', 182 '../skia/skia.gyp:skia', 183 '../third_party/icu/icu.gyp:icuuc', 184 '../third_party/icu/icu.gyp:icui18n', 185 '../ui/events/events.gyp:events_base', 186 '../ui/events/ipc/events_ipc.gyp:events_ipc', 187 '../ui/surface/surface.gyp:surface', 188 'ppapi.gyp:ppapi_c', 189 'ppapi_shared', 190 ], 191 'all_dependent_settings': { 192 'include_dirs': [ 193 '..', 194 ], 195 }, 196 # Disable c4267 warnings until we fix size_t to int truncations. 197 'msvs_disabled_warnings': [ 4267, ], 198 'conditions': [ 199 ['chrome_multiple_dll==1', { 200 'dependencies': [ 201 '../third_party/WebKit/public/blink.gyp:blink_minimal', 202 ], 203 }, { 204 'dependencies': [ 205 '../third_party/WebKit/public/blink.gyp:blink', 206 ], 207 }], 208 ], 209 }, 210 { 211 # In component build, this is just a phony target that makes sure 212 # ppapi_proxy is built, since that's where the ipc sources go in the 213 # component build. 214 'target_name': 'ppapi_ipc', 215 'type': 'none', 216 'dependencies': [ 217 'ppapi_proxy', 218 ], 219 }, 220 ], 221 }], 222 ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', { 223 # In windows builds, we also want to define some targets to build in 224 # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit 225 # Windows). 226 'targets': [ 227 { 228 # GN version: //ppapi:ppapi_shared 229 # (Should be automagical when compiling in the 64-bit toolchain.) 230 'target_name': 'ppapi_shared_win64', 231 'type': '<(component)', 232 'variables': { 233 'nacl_win64_target': 1, 234 'ppapi_shared_target': 1, 235 }, 236 'dependencies': [ 237 'ppapi.gyp:ppapi_c', 238 '../base/base.gyp:base_win64', 239 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64', 240 '../gpu/gpu.gyp:command_buffer_common_win64', 241 '../ipc/ipc.gyp:ipc_win64', 242 '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64', 243 ], 244 'defines': [ 245 '<@(nacl_win64_defines)', 246 ], 247 'export_dependent_settings': [ 248 '../base/base.gyp:base_win64', 249 ], 250 'configurations': { 251 'Common_Base': { 252 'msvs_target_platform': 'x64', 253 }, 254 }, 255 }, 256 { 257 # GN version: //ppapi:ppapi_ipc 258 # (Should be automagical when compiling in the 64-bit toolchain.) 259 'target_name': 'ppapi_ipc_win64', 260 'type': 'static_library', 261 'variables': { 262 'nacl_win64_target': 1, 263 'ppapi_ipc_target': 1, 264 }, 265 'dependencies': [ 266 '../base/base.gyp:base_win64', 267 '../ipc/ipc.gyp:ipc_win64', 268 '../gpu/gpu.gyp:gpu_ipc_win64', 269 '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64', 270 'ppapi.gyp:ppapi_c', 271 'ppapi_shared_win64', 272 ], 273 'export_dependent_settings': [ 274 '../gpu/gpu.gyp:gpu_ipc_win64', 275 ], 276 'defines': [ 277 '<@(nacl_win64_defines)', 278 ], 279 'all_dependent_settings': { 280 'include_dirs': [ 281 '..', 282 ], 283 }, 284 'configurations': { 285 'Common_Base': { 286 'msvs_target_platform': 'x64', 287 }, 288 }, 289 }], 290 }], 291 ], 292 } 293