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