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 'chromium_enable_vtune_jit_for_v8%': 0, # enable the vtune support for V8 engine. 9 'directxsdk_exists': '<!(python <(DEPTH)/build/dir_exists.py ../third_party/directxsdk)', 10 }, 11 'target_defaults': { 12 'defines': ['CONTENT_IMPLEMENTATION'], 13 'conditions': [ 14 # TODO(jschuh): Remove this after crbug.com/173851 gets fixed. 15 ['OS=="win" and target_arch=="x64"', { 16 'msvs_settings': { 17 'VCCLCompilerTool': { 18 'AdditionalOptions': ['/bigobj'], 19 }, 20 }, 21 }], 22 ], 23 }, 24 'conditions': [ 25 ['OS != "ios"', { 26 'includes': [ 27 '../build/win_precompile.gypi', 28 ], 29 }], 30 # In component mode, we build all of content as a single DLL. 31 # However, in the static mode, we need to build content as multiple 32 # targets in order to prevent dependencies from getting introduced 33 # upstream unnecessarily (e.g., content_renderer depends on allocator 34 # and chrome_exe depends on content_common but we don't want 35 # chrome_exe to have to depend on allocator). 36 ['component=="static_library"', { 37 'target_defines': [ 38 'COMPILE_CONTENT_STATICALLY', 39 ], 40 'targets': [ 41 { 42 'target_name': 'content', 43 'type': 'none', 44 'dependencies': [ 45 'content_browser', 46 'content_common', 47 ], 48 'conditions': [ 49 ['OS != "ios"', { 50 'dependencies': [ 51 'content_child', 52 'content_gpu', 53 'content_plugin', 54 'content_ppapi_plugin', 55 'content_renderer', 56 'content_utility', 57 'content_worker', 58 ], 59 }], 60 ], 61 }, 62 { 63 'target_name': 'content_app_browser', 64 'type': 'static_library', 65 'variables': { 'enable_wexit_time_destructors': 1, }, 66 'includes': [ 67 'content_app.gypi', 68 ], 69 'dependencies': [ 70 'content_common', 71 ], 72 'conditions': [ 73 ['chrome_multiple_dll', { 74 'defines': [ 75 'CHROME_MULTIPLE_DLL_BROWSER', 76 ], 77 }], 78 ], 79 }, 80 { 81 'target_name': 'content_app_child', 82 'type': 'static_library', 83 'variables': { 'enable_wexit_time_destructors': 1, }, 84 'includes': [ 85 'content_app.gypi', 86 ], 87 'dependencies': [ 88 'content_common', 89 ], 90 'conditions': [ 91 ['chrome_multiple_dll', { 92 'defines': [ 93 'CHROME_MULTIPLE_DLL_CHILD', 94 ], 95 }], 96 ], 97 }, 98 { 99 'target_name': 'content_app_both', 100 'type': 'static_library', 101 'variables': { 'enable_wexit_time_destructors': 1, }, 102 'includes': [ 103 'content_app.gypi', 104 ], 105 'dependencies': [ 106 'content_common', 107 ], 108 }, 109 { 110 'target_name': 'content_browser', 111 'type': 'static_library', 112 'variables': { 'enable_wexit_time_destructors': 1, }, 113 'includes': [ 114 'content_browser.gypi', 115 ], 116 'dependencies': [ 117 'content_common', 118 'content_resources.gyp:content_resources', 119 ], 120 'conditions': [ 121 ['java_bridge==1', { 122 'dependencies': [ 123 'content_child', 124 ] 125 }], 126 ['OS=="android"', { 127 'dependencies': [ 128 'content_gpu', 129 'content_utility', 130 ], 131 }], 132 ], 133 }, 134 { 135 'target_name': 'content_common', 136 'type': 'static_library', 137 'variables': { 'enable_wexit_time_destructors': 1, }, 138 'includes': [ 139 'content_common.gypi', 140 ], 141 'conditions': [ 142 ['OS != "ios"', { 143 'dependencies': [ 144 'content_resources.gyp:content_resources', 145 ], 146 }], 147 ], 148 # Disable c4267 warnings until we fix size_t to int truncations. 149 'msvs_disabled_warnings': [ 4267, ], 150 }, 151 ], 152 'conditions': [ 153 ['OS != "ios"', { 154 'targets': [ 155 { 156 'target_name': 'content_child', 157 'type': 'static_library', 158 'variables': { 'enable_wexit_time_destructors': 1, }, 159 'includes': [ 160 'content_child.gypi', 161 ], 162 'dependencies': [ 163 'content_resources.gyp:content_resources', 164 ], 165 # Disable c4267 warnings until we fix size_t to int truncations. 166 'msvs_disabled_warnings': [ 4267, ], 167 }, 168 { 169 'target_name': 'content_gpu', 170 'type': 'static_library', 171 'variables': { 'enable_wexit_time_destructors': 1, }, 172 'includes': [ 173 'content_gpu.gypi', 174 ], 175 'dependencies': [ 176 'content_child', 177 'content_common', 178 ], 179 }, 180 { 181 'target_name': 'content_plugin', 182 'type': 'static_library', 183 'variables': { 'enable_wexit_time_destructors': 1, }, 184 'includes': [ 185 'content_plugin.gypi', 186 ], 187 'dependencies': [ 188 'content_child', 189 'content_common', 190 ], 191 }, 192 { 193 'target_name': 'content_ppapi_plugin', 194 'type': 'static_library', 195 'variables': { 'enable_wexit_time_destructors': 1, }, 196 'includes': [ 197 'content_ppapi_plugin.gypi', 198 ], 199 # Disable c4267 warnings until we fix size_t to int truncations. 200 'msvs_disabled_warnings': [ 4267, ], 201 }, 202 { 203 'target_name': 'content_renderer', 204 'type': 'static_library', 205 'variables': { 'enable_wexit_time_destructors': 1, }, 206 'includes': [ 207 'content_renderer.gypi', 208 ], 209 'dependencies': [ 210 'content_child', 211 'content_common', 212 'content_resources.gyp:content_resources', 213 ], 214 'conditions': [ 215 ['chromium_enable_vtune_jit_for_v8==1', { 216 'dependencies': [ 217 '../v8/src/third_party/vtune/v8vtune.gyp:v8_vtune', 218 ], 219 }], 220 ], 221 }, 222 { 223 'target_name': 'content_utility', 224 'type': 'static_library', 225 'variables': { 'enable_wexit_time_destructors': 1, }, 226 'includes': [ 227 'content_utility.gypi', 228 ], 229 'dependencies': [ 230 'content_child', 231 'content_common', 232 ], 233 }, 234 { 235 'target_name': 'content_worker', 236 'type': 'static_library', 237 'variables': { 'enable_wexit_time_destructors': 1, }, 238 'includes': [ 239 'content_worker.gypi', 240 ], 241 'dependencies': [ 242 'content_child', 243 'content_common', 244 ], 245 }, 246 ], 247 }], 248 ], 249 }, 250 { # component != static_library 251 'targets': [ 252 { 253 'target_name': 'content', 254 'type': 'shared_library', 255 'variables': { 'enable_wexit_time_destructors': 1, }, 256 'dependencies': [ 257 'content_resources.gyp:content_resources', 258 ], 259 'conditions': [ 260 ['OS=="mac"', { 261 'dependencies': [ 262 '<(DEPTH)/third_party/mach_override/mach_override.gyp:mach_override', 263 ], 264 }], 265 ['chromium_enable_vtune_jit_for_v8==1', { 266 'dependencies': [ 267 '../v8/src/third_party/vtune/v8vtune.gyp:v8_vtune', 268 ], 269 }], 270 ], 271 'includes': [ 272 'content_app.gypi', 273 'content_browser.gypi', 274 'content_child.gypi', 275 'content_common.gypi', 276 'content_gpu.gypi', 277 'content_plugin.gypi', 278 'content_ppapi_plugin.gypi', 279 'content_renderer.gypi', 280 'content_utility.gypi', 281 'content_worker.gypi', 282 ], 283 'msvs_settings': { 284 'VCLinkerTool': { 285 'conditions': [ 286 ['incremental_chrome_dll==1', { 287 'UseLibraryDependencyInputs': "true", 288 }], 289 ], 290 }, 291 }, 292 }, 293 { 294 'target_name': 'content_app_browser', 295 'type': 'none', 296 'dependencies': ['content', 'content_browser'], 297 }, 298 { 299 'target_name': 'content_app_child', 300 'type': 'none', 301 'dependencies': ['content', 'content_child'], 302 }, 303 { 304 'target_name': 'content_app_both', 305 'type': 'none', 306 'dependencies': ['content'], 307 }, 308 { 309 'target_name': 'content_browser', 310 'type': 'none', 311 'dependencies': ['content'], 312 }, 313 { 314 'target_name': 'content_common', 315 'type': 'none', 316 'dependencies': ['content', 'content_resources.gyp:content_resources'], 317 # Disable c4267 warnings until we fix size_t to int truncations. 318 'msvs_disabled_warnings': [ 4267, ], 319 }, 320 { 321 'target_name': 'content_child', 322 'type': 'none', 323 'dependencies': ['content'], 324 }, 325 { 326 'target_name': 'content_gpu', 327 'type': 'none', 328 'dependencies': ['content'], 329 }, 330 { 331 'target_name': 'content_plugin', 332 'type': 'none', 333 'dependencies': ['content'], 334 }, 335 { 336 'target_name': 'content_ppapi_plugin', 337 'type': 'none', 338 'dependencies': ['content'], 339 # Disable c4267 warnings until we fix size_t to int truncations. 340 'msvs_disabled_warnings': [ 4267, ], 341 }, 342 { 343 'target_name': 'content_renderer', 344 'type': 'none', 345 'dependencies': ['content'], 346 }, 347 { 348 'target_name': 'content_utility', 349 'type': 'none', 350 'dependencies': ['content'], 351 }, 352 { 353 'target_name': 'content_worker', 354 'type': 'none', 355 'dependencies': ['content'], 356 }, 357 ], 358 }], 359 ['OS == "android"', { 360 'targets': [ 361 { 362 'target_name': 'common_aidl', 363 'type': 'none', 364 'variables': { 365 'aidl_interface_file': 'public/android/java/src/org/chromium/content/common/common.aidl', 366 }, 367 'sources': [ 368 'public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 369 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl', 370 ], 371 'includes': [ '../build/java_aidl.gypi' ], 372 }, 373 { 374 'target_name': 'content_native_libraries_gen', 375 'type': 'none', 376 'sources': [ 377 'public/android/java/templates/NativeLibraries.template', 378 ], 379 'variables': { 380 'package_name': 'org/chromium/content/app', 381 'include_path': 'public/android/java/templates', 382 'template_deps': [ 383 'public/android/java/templates/native_libraries_array.h' 384 ], 385 }, 386 'includes': [ '../build/android/java_cpp_template.gypi' ], 387 }, 388 { 389 'target_name': 'content_java', 390 'type': 'none', 391 'dependencies': [ 392 '../base/base.gyp:base', 393 '../media/media.gyp:media_java', 394 '../net/net.gyp:net', 395 '../ui/android/ui_android.gyp:ui_java', 396 'common_aidl', 397 'content_common', 398 'page_transition_types_java', 399 'popup_item_type_java', 400 'result_codes_java', 401 'speech_recognition_error_java', 402 'top_controls_state_java', 403 'content_native_libraries_gen', 404 ], 405 'variables': { 406 'java_in_dir': '../content/public/android/java', 407 'jar_excluded_classes': [ '*/NativeLibraries.class' ], 408 'has_java_resources': 1, 409 'R_package': 'org.chromium.content', 410 'R_package_relpath': 'org/chromium/content', 411 'java_strings_grd': 'android_content_strings.grd', 412 }, 413 'conditions': [ 414 ['android_webview_build == 0', { 415 'dependencies': [ 416 '../third_party/eyesfree/eyesfree.gyp:eyesfree_java', 417 '../third_party/guava/guava.gyp:guava_javalib', 418 ], 419 }], 420 ], 421 'includes': [ '../build/java.gypi' ], 422 }, 423 { 424 'target_name': 'page_transition_types_java', 425 'type': 'none', 426 'sources': [ 427 'public/android/java/src/org/chromium/content/browser/PageTransitionTypes.template', 428 ], 429 'variables': { 430 'package_name': 'org/chromium/content/browser', 431 'template_deps': ['public/common/page_transition_types_list.h'], 432 }, 433 'includes': [ '../build/android/java_cpp_template.gypi' ], 434 }, 435 { 436 'target_name': 'popup_item_type_java', 437 'type': 'none', 438 'sources': [ 439 'public/android/java/src/org/chromium/content/browser/input/PopupItemType.template', 440 ], 441 'variables': { 442 'package_name': 'org/chromium/content/browser/input', 443 'template_deps': ['browser/android/popup_item_type_list.h'], 444 }, 445 'includes': [ '../build/android/java_cpp_template.gypi' ], 446 }, 447 { 448 'target_name': 'result_codes_java', 449 'type': 'none', 450 'sources': [ 451 'public/android/java/src/org/chromium/content/common/ResultCodes.template', 452 ], 453 'variables': { 454 'package_name': 'org/chromium/content/common', 455 'template_deps': ['public/common/result_codes_list.h'], 456 }, 457 'includes': [ '../build/android/java_cpp_template.gypi' ], 458 }, 459 { 460 'target_name': 'speech_recognition_error_java', 461 'type': 'none', 462 'sources': [ 463 'public/android/java/src/org/chromium/content/browser/SpeechRecognitionError.template', 464 ], 465 'variables': { 466 'package_name': 'org/chromium/content/browser', 467 'template_deps': ['public/common/speech_recognition_error_list.h'], 468 }, 469 'includes': [ '../build/android/java_cpp_template.gypi' ], 470 }, 471 { 472 'target_name': 'top_controls_state_java', 473 'type': 'none', 474 'sources': [ 475 'public/android/java/src/org/chromium/content/common/TopControlsState.template', 476 ], 477 'variables': { 478 'package_name': 'org/chromium/content/common', 479 'template_deps': ['public/common/top_controls_state_list.h'], 480 }, 481 'includes': [ '../build/android/java_cpp_template.gypi' ], 482 }, 483 { 484 'target_name': 'java_set_jni_headers', 485 'type': 'none', 486 'variables': { 487 'jni_gen_package': 'content', 488 'input_java_class': 'java/util/HashSet.class', 489 }, 490 'includes': [ '../build/jar_file_jni_generator.gypi' ], 491 }, 492 { 493 'target_name': 'content_jni_headers', 494 'type': 'none', 495 'dependencies': [ 496 'java_set_jni_headers' 497 ], 498 'direct_dependent_settings': { 499 'include_dirs': [ 500 '<(SHARED_INTERMEDIATE_DIR)/content', 501 ], 502 }, 503 'includes': [ 'content_jni.gypi' ], 504 }, 505 { 506 'target_name': 'content_android_linker', 507 'type': 'shared_library', 508 'conditions': [ 509 ['android_webview_build == 0', { 510 # Avoid breaking the webview build because it doesn't have 511 # <(android_ndk_root)/crazy_linker.gyp. Note that it never uses 512 # the linker anyway. 513 'sources': [ 514 'common/android/linker/linker_jni.cc', 515 ], 516 'dependencies': [ 517 '<(android_ndk_root)/crazy_linker.gyp:crazy_linker', 518 ], 519 }], 520 ], 521 }, 522 523 ], 524 }], # OS == "android" 525 ], 526 } 527