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': '<!pymod_do_main(dir_exists ../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 'content_common_mojo_bindings.gypi', 28 'content_resources.gypi', 29 '../build/win_precompile.gypi', 30 ], 31 }], 32 ['OS == "win"', { 33 'targets': [ 34 { 35 'target_name': 'content_startup_helper_win', 36 'type': 'static_library', 37 'include_dirs': [ 38 '..', 39 ], 40 'dependencies': [ 41 '../base/base.gyp:base', 42 '../base/base.gyp:base_i18n', 43 '../sandbox/sandbox.gyp:sandbox', 44 ], 45 'sources': [ 46 'app/startup_helper_win.cc', 47 'public/app/startup_helper_win.h', 48 ], 49 } 50 ], 51 }], 52 # In component mode, we build all of content as a single DLL. 53 # However, in the static mode, we need to build content as multiple 54 # targets in order to prevent dependencies from getting introduced 55 # upstream unnecessarily (e.g., content_renderer depends on allocator 56 # and chrome_exe depends on content_common but we don't want 57 # chrome_exe to have to depend on allocator). 58 ['component=="static_library"', { 59 'target_defines': [ 60 'COMPILE_CONTENT_STATICALLY', 61 ], 62 'targets': [ 63 { 64 # GN version: //content 65 'target_name': 'content', 66 'type': 'none', 67 'dependencies': [ 68 'content_browser', 69 'content_common', 70 ], 71 'export_dependent_settings': [ 72 'content_common', 73 ], 74 'conditions': [ 75 ['OS != "ios"', { 76 'dependencies': [ 77 'content_child', 78 'content_gpu', 79 'content_plugin', 80 'content_ppapi_plugin', 81 'content_renderer', 82 'content_utility', 83 ], 84 }], 85 ], 86 }, 87 { 88 # GN version: //content/app:browser 89 'target_name': 'content_app_browser', 90 'type': 'static_library', 91 'variables': { 'enable_wexit_time_destructors': 1, }, 92 'includes': [ 93 'content_app.gypi', 94 ], 95 'dependencies': [ 96 'content_common', 97 ], 98 'export_dependent_settings': [ 99 'content_common', 100 ], 101 'conditions': [ 102 ['chrome_multiple_dll', { 103 'defines': [ 104 'CHROME_MULTIPLE_DLL_BROWSER', 105 ], 106 }], 107 ], 108 }, 109 { 110 # GN version: //content/app:child 111 'target_name': 'content_app_child', 112 'type': 'static_library', 113 'variables': { 'enable_wexit_time_destructors': 1, }, 114 'includes': [ 115 'content_app.gypi', 116 ], 117 'dependencies': [ 118 'content_common', 119 ], 120 'export_dependent_settings': [ 121 'content_common', 122 ], 123 'conditions': [ 124 ['chrome_multiple_dll', { 125 'defines': [ 126 'CHROME_MULTIPLE_DLL_CHILD', 127 ], 128 }], 129 ], 130 }, 131 { 132 # GN version: //content/app:both 133 'target_name': 'content_app_both', 134 'type': 'static_library', 135 'variables': { 'enable_wexit_time_destructors': 1, }, 136 'includes': [ 137 'content_app.gypi', 138 ], 139 'dependencies': [ 140 'content_common', 141 ], 142 'export_dependent_settings': [ 143 'content_common', 144 ], 145 }, 146 { 147 # GN version: //content/browser and //content/public/browser 148 'target_name': 'content_browser', 149 'type': 'static_library', 150 'variables': { 'enable_wexit_time_destructors': 1, }, 151 'includes': [ 152 'content_browser.gypi', 153 ], 154 'dependencies': [ 155 'content_common', 156 ], 157 'export_dependent_settings': [ 158 'content_common', 159 ], 160 'conditions': [ 161 ['java_bridge==1', { 162 'dependencies': [ 163 'content_child', 164 ] 165 }], 166 ['OS=="android"', { 167 'dependencies': [ 168 'content_gpu', 169 'content_utility', 170 ], 171 }], 172 ['OS != "ios"', { 173 'dependencies': [ 174 'content_resources', 175 ], 176 }], 177 ], 178 }, 179 { 180 # GN version: //content/common and //content/public/common 181 'target_name': 'content_common', 182 'type': 'static_library', 183 'variables': { 'enable_wexit_time_destructors': 1, }, 184 'includes': [ 185 'content_common.gypi', 186 ], 187 'conditions': [ 188 ['OS != "ios"', { 189 'dependencies': [ 190 'content_resources', 191 ], 192 }], 193 ], 194 # Disable c4267 warnings until we fix size_t to int truncations. 195 'msvs_disabled_warnings': [ 4267, ], 196 }, 197 ], 198 'conditions': [ 199 ['OS != "ios"', { 200 'targets': [ 201 { 202 # GN version: //content/child and //content/public/child 203 'target_name': 'content_child', 204 'type': 'static_library', 205 'variables': { 'enable_wexit_time_destructors': 1, }, 206 'includes': [ 207 'content_child.gypi', 208 ], 209 'dependencies': [ 210 'content_resources', 211 ], 212 # Disable c4267 warnings until we fix size_t to int truncations. 213 'msvs_disabled_warnings': [ 4267, ], 214 }, 215 { 216 # GN version: //content/gpu 217 'target_name': 'content_gpu', 218 'type': 'static_library', 219 'variables': { 'enable_wexit_time_destructors': 1, }, 220 'includes': [ 221 'content_gpu.gypi', 222 ], 223 'dependencies': [ 224 'content_child', 225 'content_common', 226 ], 227 }, 228 { 229 # GN version: //content/plugin and //content/public/plugin 230 'target_name': 'content_plugin', 231 'type': 'static_library', 232 'variables': { 'enable_wexit_time_destructors': 1, }, 233 'includes': [ 234 'content_plugin.gypi', 235 ], 236 'dependencies': [ 237 'content_child', 238 'content_common', 239 ], 240 }, 241 { 242 # GN version: //content/ppapi_plugin 243 'target_name': 'content_ppapi_plugin', 244 'type': 'static_library', 245 'variables': { 'enable_wexit_time_destructors': 1, }, 246 'includes': [ 247 'content_ppapi_plugin.gypi', 248 ], 249 # Disable c4267 warnings until we fix size_t to int truncations. 250 'msvs_disabled_warnings': [ 4267, ], 251 }, 252 { 253 # GN version: //content/renderer and //content/public/renderer 254 'target_name': 'content_renderer', 255 'type': 'static_library', 256 'variables': { 'enable_wexit_time_destructors': 1, }, 257 'includes': [ 258 'content_renderer.gypi', 259 ], 260 'dependencies': [ 261 'content_child', 262 'content_common', 263 'content_resources', 264 ], 265 'conditions': [ 266 ['chromium_enable_vtune_jit_for_v8==1', { 267 'dependencies': [ 268 '../v8/src/third_party/vtune/v8vtune.gyp:v8_vtune', 269 ], 270 }], 271 ], 272 }, 273 { 274 # GN version: //content/utility and //content/public/utility 275 'target_name': 'content_utility', 276 'type': 'static_library', 277 'variables': { 'enable_wexit_time_destructors': 1, }, 278 'includes': [ 279 'content_utility.gypi', 280 ], 281 'dependencies': [ 282 'content_child', 283 'content_common', 284 ], 285 }, 286 ], 287 }], 288 ], 289 }, 290 { # component != static_library 291 'targets': [ 292 { 293 # GN version: //content 294 'target_name': 'content', 295 'type': 'shared_library', 296 'variables': { 'enable_wexit_time_destructors': 1, }, 297 'dependencies': [ 298 'content_resources', 299 ], 300 'conditions': [ 301 ['chromium_enable_vtune_jit_for_v8==1', { 302 'dependencies': [ 303 '../v8/src/third_party/vtune/v8vtune.gyp:v8_vtune', 304 ], 305 }], 306 ], 307 'includes': [ 308 'content_app.gypi', 309 'content_browser.gypi', 310 'content_child.gypi', 311 'content_common.gypi', 312 'content_gpu.gypi', 313 'content_plugin.gypi', 314 'content_ppapi_plugin.gypi', 315 'content_renderer.gypi', 316 'content_utility.gypi', 317 ], 318 'msvs_settings': { 319 'VCLinkerTool': { 320 'conditions': [ 321 ['incremental_chrome_dll==1', { 322 'UseLibraryDependencyInputs': "true", 323 }], 324 ], 325 }, 326 }, 327 }, 328 { 329 # GN version: //content/app:browser 330 'target_name': 'content_app_browser', 331 'type': 'none', 332 'dependencies': ['content', 'content_browser'], 333 }, 334 { 335 # GN version: //content/app:child 336 'target_name': 'content_app_child', 337 'type': 'none', 338 'dependencies': ['content', 'content_child'], 339 }, 340 { 341 # GN version: //content/app:both 342 'target_name': 'content_app_both', 343 'type': 'none', 344 'dependencies': ['content'], 345 'export_dependent_settings': ['content'], 346 }, 347 { 348 # GN version: //content/browser and //content/public/browser 349 'target_name': 'content_browser', 350 'type': 'none', 351 'dependencies': ['content'], 352 'export_dependent_settings': ['content'], 353 }, 354 { 355 # GN version: //content/common and //content/public/common 356 'target_name': 'content_common', 357 'type': 'none', 358 'dependencies': ['content', 'content_resources'], 359 # Disable c4267 warnings until we fix size_t to int truncations. 360 'msvs_disabled_warnings': [ 4267, ], 361 'export_dependent_settings': ['content'], 362 }, 363 { 364 # GN Version: //content/child 365 'target_name': 'content_child', 366 'type': 'none', 367 'dependencies': ['content'], 368 }, 369 { 370 # GN version: //content/gpu 371 'target_name': 'content_gpu', 372 'type': 'none', 373 'dependencies': ['content'], 374 }, 375 { 376 # GN version: //content/plugin 377 'target_name': 'content_plugin', 378 'type': 'none', 379 'dependencies': ['content'], 380 }, 381 { 382 # GN version: //content/ppapi_plugin 383 'target_name': 'content_ppapi_plugin', 384 'type': 'none', 385 'dependencies': ['content'], 386 # Disable c4267 warnings until we fix size_t to int truncations. 387 'msvs_disabled_warnings': [ 4267, ], 388 }, 389 { 390 # GN version: //content/renderer and //content/public/renderer 391 'target_name': 'content_renderer', 392 'type': 'none', 393 'dependencies': ['content'], 394 }, 395 { 396 # GN version: //content/utility 397 'target_name': 'content_utility', 398 'type': 'none', 399 'dependencies': ['content'], 400 'export_dependent_settings': ['content'], 401 }, 402 ], 403 }], 404 ['OS == "android"', { 405 'targets': [ 406 { 407 'target_name': 'common_aidl', 408 'type': 'none', 409 'variables': { 410 'aidl_interface_file': 'public/android/java/src/org/chromium/content/common/common.aidl', 411 'aidl_import_include': 'public/android/java/src', 412 }, 413 'sources': [ 414 'public/android/java/src/org/chromium/content/common/IChildProcessCallback.aidl', 415 'public/android/java/src/org/chromium/content/common/IChildProcessService.aidl', 416 ], 417 'includes': [ '../build/java_aidl.gypi' ], 418 }, 419 { 420 'target_name': 'content_java', 421 'type': 'none', 422 'dependencies': [ 423 '../base/base.gyp:base', 424 '../media/media.gyp:media_java', 425 '../net/net.gyp:net', 426 '../ui/android/ui_android.gyp:ui_java', 427 'common_aidl', 428 'content_common', 429 'content_strings_grd', 430 'content_gamepad_mapping', 431 'gesture_event_type_java', 432 'popup_item_type_java', 433 'result_codes_java', 434 'selection_event_type_java', 435 'speech_recognition_error_java', 436 'top_controls_state_java', 437 'screen_orientation_values_java', 438 ], 439 'variables': { 440 'java_in_dir': '../content/public/android/java', 441 'has_java_resources': 1, 442 'R_package': 'org.chromium.content', 443 'R_package_relpath': 'org/chromium/content', 444 }, 445 'conditions': [ 446 ['android_webview_build == 0', { 447 'dependencies': [ 448 '../third_party/eyesfree/eyesfree.gyp:eyesfree_java', 449 ], 450 }], 451 ], 452 'includes': [ '../build/java.gypi' ], 453 }, 454 { 455 'target_name': 'content_strings_grd', 456 # The android_webview/Android.mk file depends on this target directly. 457 'android_unmangled_name': 1, 458 'type': 'none', 459 'variables': { 460 'grd_file': '../content/public/android/java/strings/android_content_strings.grd', 461 }, 462 'includes': [ 463 '../build/java_strings_grd.gypi', 464 ], 465 }, 466 { 467 'target_name': 'gesture_event_type_java', 468 'type': 'none', 469 'sources': [ 470 'public/android/java/src/org/chromium/content/browser/GestureEventType.template', 471 ], 472 'variables': { 473 'package_name': 'org/chromium/content/browser', 474 'template_deps': ['browser/android/gesture_event_type_list.h'], 475 }, 476 'includes': [ '../build/android/java_cpp_template.gypi' ], 477 }, 478 { 479 'target_name': 'popup_item_type_java', 480 'type': 'none', 481 'sources': [ 482 'public/android/java/src/org/chromium/content/browser/input/PopupItemType.template', 483 ], 484 'variables': { 485 'package_name': 'org/chromium/content/browser/input', 486 'template_deps': ['browser/android/popup_item_type_list.h'], 487 }, 488 'includes': [ '../build/android/java_cpp_template.gypi' ], 489 }, 490 { 491 'target_name': 'result_codes_java', 492 'type': 'none', 493 'sources': [ 494 'public/android/java/src/org/chromium/content/common/ResultCodes.template', 495 ], 496 'variables': { 497 'package_name': 'org/chromium/content/common', 498 'template_deps': ['public/common/result_codes_list.h'], 499 }, 500 'includes': [ '../build/android/java_cpp_template.gypi' ], 501 }, 502 { 503 'target_name': 'selection_event_type_java', 504 'type': 'none', 505 'sources': [ 506 'public/android/java/src/org/chromium/content/browser/input/SelectionEventType.template', 507 ], 508 'variables': { 509 'package_name': 'org/chromium/content/browser/input', 510 'template_deps': ['browser/renderer_host/input/selection_event_type_list.h'], 511 }, 512 'includes': [ '../build/android/java_cpp_template.gypi' ], 513 }, 514 { 515 'target_name': 'speech_recognition_error_java', 516 'type': 'none', 517 'sources': [ 518 'public/android/java/src/org/chromium/content/browser/SpeechRecognitionError.template', 519 ], 520 'variables': { 521 'package_name': 'org/chromium/content/browser', 522 'template_deps': ['public/common/speech_recognition_error_list.h'], 523 }, 524 'includes': [ '../build/android/java_cpp_template.gypi' ], 525 }, 526 { 527 'target_name': 'top_controls_state_java', 528 'type': 'none', 529 'sources': [ 530 'public/android/java/src/org/chromium/content/common/TopControlsState.template', 531 ], 532 'variables': { 533 'package_name': 'org/chromium/content/common', 534 'template_deps': ['public/common/top_controls_state_list.h'], 535 }, 536 'includes': [ '../build/android/java_cpp_template.gypi' ], 537 }, 538 { 539 'target_name': 'screen_orientation_values_java', 540 'type': 'none', 541 'sources': [ 542 'public/android/java/src/org/chromium/content_public/common/ScreenOrientationValues.template', 543 ], 544 'variables': { 545 'package_name': 'org/chromium/content_public/common', 546 'template_deps': ['public/common/screen_orientation_values_list.h'], 547 }, 548 'includes': [ '../build/android/java_cpp_template.gypi' ], 549 }, 550 { 551 'target_name': 'java_set_jni_headers', 552 'type': 'none', 553 'variables': { 554 'jni_gen_package': 'content', 555 'input_java_class': 'java/util/HashSet.class', 556 }, 557 'includes': [ '../build/jar_file_jni_generator.gypi' ], 558 }, 559 { 560 'target_name': 'motionevent_jni_headers', 561 'type': 'none', 562 'variables': { 563 'jni_gen_package': 'content', 564 'input_java_class': 'android/view/MotionEvent.class', 565 }, 566 'includes': [ '../build/jar_file_jni_generator.gypi' ], 567 }, 568 { 569 'target_name': 'content_jni_headers', 570 'type': 'none', 571 'dependencies': [ 572 'java_set_jni_headers', 573 'motionevent_jni_headers' 574 ], 575 'includes': [ 'content_jni.gypi' ], 576 }, 577 { 578 'target_name': 'content_icudata', 579 'type': 'none', 580 'conditions': [ 581 ['icu_use_data_file_flag==1', { 582 'copies': [ 583 { 584 'destination': '<(PRODUCT_DIR)/content_shell/assets', 585 'files': [ 586 '<(PRODUCT_DIR)/icudtl.dat', 587 ], 588 }, 589 ], 590 }], 591 ], 592 }, 593 { 594 'target_name': 'content_gamepad_mapping', 595 'type': 'none', 596 'sources': [ 597 'public/android/java/src/org/chromium/content/browser/input/CanonicalButtonIndex.template', 598 'public/android/java/src/org/chromium/content/browser/input/CanonicalAxisIndex.template', 599 ], 600 'variables': { 601 'package_name': 'org/chromium/content/browser/input', 602 'template_deps': [ 603 'browser/gamepad/canonical_axis_index_list.h', 604 'browser/gamepad/canonical_button_index_list.h', 605 ], 606 }, 607 'includes': [ '../build/android/java_cpp_template.gypi' ], 608 }, 609 ], 610 }], # OS == "android" 611 ], 612 } 613