Home | History | Annotate | Download | only in content
      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