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     'content_shell_product_name': 'Content Shell',
      8     # The "19" is so that sites that sniff for version think that this is
      9     # something reasonably current; the "77.34.5" is a hint that this isn't a
     10     # standard Chrome.
     11     'content_shell_version': '19.77.34.5',
     12     'conditions': [
     13       ['OS=="linux"', {
     14        'use_custom_freetype%': 1,
     15       }, {
     16        'use_custom_freetype%': 0,
     17       }],
     18     ],
     19   },
     20   'targets': [
     21     {
     22       'target_name': 'content_shell_lib',
     23       'type': 'static_library',
     24       'defines!': ['CONTENT_IMPLEMENTATION'],
     25       'defines': ['CONTENT_SHELL_VERSION="<(content_shell_version)"'],
     26       'variables': {
     27         'chromium_code': 1,
     28       },
     29       'dependencies': [
     30         'content_app_both',
     31         'content_browser',
     32         'content_common',
     33         'content_gpu',
     34         'content_plugin',
     35         'content_ppapi_plugin',
     36         'content_renderer',
     37         'content_shell_resources',
     38         'content_utility',
     39         'content_worker',
     40         'test_support_content',
     41         'content_resources.gyp:content_resources',
     42         '../base/base.gyp:base',
     43         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
     44         '../ipc/ipc.gyp:ipc',
     45         '../media/media.gyp:media',
     46         '../net/net.gyp:net',
     47         '../net/net.gyp:net_resources',
     48         '../skia/skia.gyp:skia',
     49         '../third_party/WebKit/public/blink_test_runner.gyp:blink_test_runner',
     50         '../ui/gl/gl.gyp:gl',
     51         '../ui/ui.gyp:ui',
     52         '../url/url.gyp:url_lib',
     53         '../v8/tools/gyp/v8.gyp:v8',
     54         '../webkit/support/webkit_support.gyp:webkit_support',
     55         '../webkit/webkit_resources.gyp:webkit_resources',
     56       ],
     57       'include_dirs': [
     58         '..',
     59       ],
     60       'sources': [
     61         'shell/android/shell_jni_registrar.cc',
     62         'shell/android/shell_jni_registrar.h',
     63         'shell/android/shell_manager.cc',
     64         'shell/android/shell_manager.h',
     65         'shell/app/paths_mac.h',
     66         'shell/app/paths_mac.mm',
     67         'shell/app/shell_main_delegate.cc',
     68         'shell/app/shell_main_delegate.h',
     69         'shell/app/shell_main_delegate_mac.h',
     70         'shell/app/shell_main_delegate_mac.mm',
     71         'shell/app/webkit_test_platform_support.h',
     72         'shell/app/webkit_test_platform_support_android.cc',
     73         'shell/app/webkit_test_platform_support_linux.cc',
     74         'shell/app/webkit_test_platform_support_mac.mm',
     75         'shell/app/webkit_test_platform_support_win.cc',
     76         'shell/common/shell_content_client.cc',
     77         'shell/common/shell_content_client.h',
     78         'shell/common/shell_messages.cc',
     79         'shell/common/shell_messages.h',
     80         'shell/common/shell_switches.cc',
     81         'shell/common/shell_switches.h',
     82         'shell/common/shell_test_configuration.cc',
     83         'shell/common/shell_test_configuration.h',
     84         'shell/common/webkit_test_helpers.cc',
     85         'shell/common/webkit_test_helpers.h',
     86         'shell/geolocation/shell_access_token_store.cc',
     87         'shell/geolocation/shell_access_token_store.h',
     88         'shell/minimal_shell.cc',
     89         'shell/minimal_shell.h',
     90         'shell/notify_done_forwarder.cc',
     91         'shell/notify_done_forwarder.h',
     92         'shell/renderer/gc_extension.cc',
     93         'shell/renderer/gc_extension.h',
     94         'shell/renderer/shell_content_renderer_client.cc',
     95         'shell/renderer/shell_content_renderer_client.h',
     96         'shell/renderer/shell_render_process_observer.cc',
     97         'shell/renderer/shell_render_process_observer.h',
     98         'shell/renderer/shell_render_view_observer.cc',
     99         'shell/renderer/shell_render_view_observer.h',
    100         'shell/renderer/webkit_test_runner.cc',
    101         'shell/renderer/webkit_test_runner.h',
    102         'shell/shell.cc',
    103         'shell/shell.h',
    104         'shell/shell_android.cc',
    105         'shell/shell_aura.cc',
    106         'shell/shell_gtk.cc',
    107         'shell/shell_mac.mm',
    108         'shell/shell_win.cc',
    109         'shell/shell_application_mac.h',
    110         'shell/shell_application_mac.mm',
    111         'shell/shell_browser_context.cc',
    112         'shell/shell_browser_context.h',
    113         'shell/shell_browser_main.cc',
    114         'shell/shell_browser_main.h',
    115         'shell/shell_browser_main_parts.cc',
    116         'shell/shell_browser_main_parts.h',
    117         'shell/shell_browser_main_parts_mac.mm',
    118         'shell/shell_content_browser_client.cc',
    119         'shell/shell_content_browser_client.h',
    120         'shell/shell_devtools_delegate.cc',
    121         'shell/shell_devtools_delegate.h',
    122         'shell/shell_devtools_frontend.cc',
    123         'shell/shell_devtools_frontend.h',
    124         'shell/shell_download_manager_delegate.cc',
    125         'shell/shell_download_manager_delegate.h',
    126         'shell/shell_javascript_dialog_manager.cc',
    127         'shell/shell_javascript_dialog_manager.h',
    128         'shell/shell_javascript_dialog_gtk.cc',
    129         'shell/shell_javascript_dialog_mac.mm',
    130         'shell/shell_javascript_dialog_win.cc',
    131         'shell/shell_javascript_dialog.h',
    132         'shell/shell_layout_tests_android.cc',
    133         'shell/shell_layout_tests_android.h',
    134         'shell/shell_login_dialog_gtk.cc',
    135         'shell/shell_login_dialog_mac.mm',
    136         'shell/shell_login_dialog.cc',
    137         'shell/shell_login_dialog.h',
    138         'shell/shell_message_filter.cc',
    139         'shell/shell_message_filter.h',
    140         'shell/shell_net_log.cc',
    141         'shell/shell_net_log.h',
    142         'shell/shell_network_delegate.cc',
    143         'shell/shell_network_delegate.h',
    144         'shell/shell_plugin_service_filter.cc',
    145         'shell/shell_plugin_service_filter.h',
    146         'shell/shell_quota_permission_context.cc',
    147         'shell/shell_quota_permission_context.h',
    148         'shell/shell_resource_dispatcher_host_delegate.cc',
    149         'shell/shell_resource_dispatcher_host_delegate.h',
    150         'shell/shell_url_request_context_getter.cc',
    151         'shell/shell_url_request_context_getter.h',
    152         'shell/shell_web_contents_view_delegate_android.cc',
    153         'shell/shell_web_contents_view_delegate_creator.h',
    154         'shell/shell_web_contents_view_delegate_gtk.cc',
    155         'shell/shell_web_contents_view_delegate_mac.mm',
    156         'shell/shell_web_contents_view_delegate_win.cc',
    157         'shell/shell_web_contents_view_delegate.h',
    158         'shell/webkit_test_controller.cc',
    159         'shell/webkit_test_controller.h',
    160       ],
    161       'msvs_settings': {
    162         'VCLinkerTool': {
    163           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
    164         },
    165       },
    166       'conditions': [
    167         ['OS=="win" and win_use_allocator_shim==1', {
    168           'dependencies': [
    169             '../base/allocator/allocator.gyp:allocator',
    170           ],
    171         }],
    172         ['OS=="win"', {
    173           'resource_include_dirs': [
    174             '<(SHARED_INTERMEDIATE_DIR)/webkit',
    175           ],
    176           'dependencies': [
    177             '<(DEPTH)/webkit/webkit_resources.gyp:webkit_strings',
    178           ],
    179           'configurations': {
    180             'Debug_Base': {
    181               'msvs_settings': {
    182                 'VCLinkerTool': {
    183                   'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
    184                 },
    185               },
    186             },
    187           },
    188           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    189           'msvs_disabled_warnings': [ 4267, ],
    190         }],  # OS=="win"
    191         ['OS=="linux"', {
    192           'dependencies': [
    193             '../build/linux/system.gyp:fontconfig',
    194           ],
    195         }],
    196         ['OS=="android"', {
    197           'dependencies': [
    198             'content_shell_jni_headers',
    199           ],
    200         }, {  # else: OS!="android"
    201           'dependencies': [
    202             # This dependency is for running DRT against the content shell, and
    203             # this combination is not yet supported on Android.
    204             '../webkit/support/webkit_support.gyp:webkit_support',
    205           ],
    206         }],  # OS=="android"
    207         ['(os_posix==1 and use_aura==1 and linux_use_tcmalloc==1) or (android_use_tcmalloc==1)', {
    208           'dependencies': [
    209             # This is needed by content/app/content_main_runner.cc
    210             '../base/allocator/allocator.gyp:allocator',
    211           ],
    212         }],
    213         ['use_aura==1', {
    214           'dependencies': [
    215             '../ui/aura/aura.gyp:aura',
    216             '../ui/base/strings/ui_strings.gyp:ui_strings',
    217             '../ui/views/controls/webview/webview.gyp:webview',
    218             '../ui/views/views.gyp:views',
    219             '../ui/views/views.gyp:views_test_support',
    220             '../ui/ui.gyp:ui_resources',
    221           ],
    222           'sources/': [
    223             ['exclude', 'shell/shell_gtk.cc'],
    224             ['exclude', 'shell/shell_win.cc'],
    225           ],
    226         }],  # use_aura==1
    227         ['chromeos==1', {
    228           'dependencies': [
    229             '../chromeos/chromeos.gyp:chromeos',
    230            ],
    231         }], # chromeos==1
    232         ['use_ash==1', {
    233           'dependencies': [
    234             '../ash/ash.gyp:ash',
    235            ],
    236         }],
    237         ['use_custom_freetype==1', {
    238           'dependencies': [
    239              '../third_party/freetype2/freetype2.gyp:freetype2',
    240           ],
    241         }],
    242         ['enable_plugins==0', {
    243           'sources/': [
    244             ['exclude', 'shell/shell_plugin_service_filter.cc'],
    245             ['exclude', 'shell/shell_plugin_service_filter.h'],
    246           ],
    247         }]
    248       ],
    249     },
    250     {
    251       'target_name': 'content_shell_resources',
    252       'type': 'none',
    253       'dependencies': [
    254         'generate_content_shell_resources',
    255       ],
    256       'variables': {
    257         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/content',
    258       },
    259       'includes': [ '../build/grit_target.gypi' ],
    260       'copies': [
    261         {
    262           'destination': '<(PRODUCT_DIR)',
    263           'files': [
    264             '<(SHARED_INTERMEDIATE_DIR)/content/shell_resources.pak'
    265           ],
    266         },
    267       ],
    268     },
    269     {
    270       'target_name': 'generate_content_shell_resources',
    271       'type': 'none',
    272       'variables': {
    273         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/content',
    274       },
    275       'actions': [
    276         {
    277           'action_name': 'content_shell_resources',
    278           'variables': {
    279             'grit_grd_file': 'shell/shell_resources.grd',
    280           },
    281           'includes': [ '../build/grit_action.gypi' ],
    282         },
    283       ],
    284     },
    285     {
    286       # We build a minimal set of resources so WebKit in content_shell has
    287       # access to necessary resources.
    288       'target_name': 'content_shell_pak',
    289       'type': 'none',
    290       'dependencies': [
    291         'browser/devtools/devtools_resources.gyp:devtools_resources',
    292         'content_resources.gyp:content_resources',
    293         'content_shell_resources',
    294         '<(DEPTH)/net/net.gyp:net_resources',
    295         '<(DEPTH)/ui/base/strings/ui_strings.gyp:ui_strings',
    296         '<(DEPTH)/ui/ui.gyp:ui_resources',
    297         '<(DEPTH)/webkit/webkit_resources.gyp:webkit_resources',
    298         '<(DEPTH)/webkit/webkit_resources.gyp:webkit_strings',
    299       ],
    300       'conditions': [
    301         ['OS!="android" and OS!="ios"', {
    302           'dependencies': [
    303             'browser/tracing/tracing_resources.gyp:tracing_resources',
    304           ],
    305         }],
    306       ],
    307       'variables': {
    308         'repack_path': '<(DEPTH)/tools/grit/grit/format/repack.py',
    309       },
    310       'actions': [
    311         {
    312           'action_name': 'repack_content_shell_pack',
    313           'variables': {
    314             'pak_inputs': [
    315               '<(SHARED_INTERMEDIATE_DIR)/content/content_resources.pak',
    316               '<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.pak',
    317               '<(SHARED_INTERMEDIATE_DIR)/content/shell_resources.pak',
    318               '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
    319               '<(SHARED_INTERMEDIATE_DIR)/ui/app_locale_settings/app_locale_settings_en-US.pak',
    320               '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
    321               '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/webui_resources.pak',
    322               '<(SHARED_INTERMEDIATE_DIR)/ui/ui_strings/ui_strings_en-US.pak',
    323               '<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak',
    324               '<(SHARED_INTERMEDIATE_DIR)/webkit/blink_resources.pak',
    325               '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak',
    326               '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.pak',
    327             ],
    328           },
    329           'inputs': [
    330             '<(repack_path)',
    331             '<@(pak_inputs)',
    332           ],
    333           'action': ['python', '<(repack_path)', '<@(_outputs)',
    334                      '<@(pak_inputs)'],
    335           'conditions': [
    336             ['OS!="android"', {
    337               'outputs': [
    338                 '<(PRODUCT_DIR)/content_shell.pak',
    339               ],
    340             }, {
    341               'outputs': [
    342                 '<(PRODUCT_DIR)/content_shell/assets/content_shell.pak',
    343               ],
    344             }],
    345           ],
    346         },
    347       ],
    348     },
    349     {
    350       'target_name': 'content_shell',
    351       'type': 'executable',
    352       'mac_bundle': 1,
    353       'defines!': ['CONTENT_IMPLEMENTATION'],
    354       'variables': {
    355         'chromium_code': 1,
    356       },
    357       'dependencies': [
    358         'content_shell_lib',
    359         'content_shell_pak',
    360         '../third_party/mesa/mesa.gyp:osmesa',
    361         '../tools/imagediff/image_diff.gyp:image_diff',
    362       ],
    363       'include_dirs': [
    364         '..',
    365       ],
    366       'sources': [
    367         'app/startup_helper_win.cc',
    368         'shell/app/shell_main.cc',
    369       ],
    370       'mac_bundle_resources': [
    371         'shell/app/app.icns',
    372         'shell/app/app-Info.plist',
    373       ],
    374       # TODO(mark): Come up with a fancier way to do this.  It should only
    375       # be necessary to list app-Info.plist once, not the three times it is
    376       # listed here.
    377       'mac_bundle_resources!': [
    378         'shell/app/app-Info.plist',
    379       ],
    380       'xcode_settings': {
    381         'INFOPLIST_FILE': 'shell/app/app-Info.plist',
    382       },
    383       'msvs_settings': {
    384         'VCLinkerTool': {
    385           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
    386         },
    387         'VCManifestTool': {
    388           'AdditionalManifestFiles': [
    389             'shell/app/shell.exe.manifest',
    390           ],
    391         },
    392       },
    393       'conditions': [
    394         ['OS=="win" and win_use_allocator_shim==1', {
    395           'dependencies': [
    396             '../base/allocator/allocator.gyp:allocator',
    397           ],
    398         }],
    399         ['OS=="win"', {
    400           'sources': [
    401             'shell/app/shell.rc',
    402           ],
    403           'configurations': {
    404             'Debug_Base': {
    405               'msvs_settings': {
    406                 'VCLinkerTool': {
    407                   'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
    408                 },
    409               },
    410             },
    411           },
    412         }],  # OS=="win"
    413         ['OS == "win" or toolkit_uses_gtk == 1', {
    414           'dependencies': [
    415             '../sandbox/sandbox.gyp:sandbox',
    416           ],
    417         }],  # OS=="win" or toolkit_uses_gtk == 1
    418         ['toolkit_uses_gtk == 1', {
    419           'dependencies': [
    420             '<(DEPTH)/build/linux/system.gyp:gtk',
    421           ],
    422         }],  # toolkit_uses_gtk
    423         ['OS=="mac"', {
    424           'product_name': '<(content_shell_product_name)',
    425           'dependencies!': [
    426             'content_shell_lib',
    427           ],
    428           'dependencies': [
    429             'content_shell_framework',
    430             'content_shell_helper_app',
    431           ],
    432           'copies': [
    433             {
    434               'destination': '<(PRODUCT_DIR)/<(content_shell_product_name).app/Contents/Frameworks',
    435               'files': [
    436                 '<(PRODUCT_DIR)/<(content_shell_product_name) Helper.app',
    437               ],
    438             },
    439           ],
    440           'postbuilds': [
    441             {
    442               'postbuild_name': 'Copy <(content_shell_product_name) Framework.framework',
    443               'action': [
    444                 '../build/mac/copy_framework_unversioned.sh',
    445                 '${BUILT_PRODUCTS_DIR}/<(content_shell_product_name) Framework.framework',
    446                 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Frameworks',
    447               ],
    448             },
    449             {
    450               'postbuild_name': 'Fix Framework Link',
    451               'action': [
    452                 'install_name_tool',
    453                 '-change',
    454                 '/Library/Frameworks/<(content_shell_product_name) Framework.framework/Versions/A/<(content_shell_product_name) Framework',
    455                 '@executable_path/../Frameworks/<(content_shell_product_name) Framework.framework/<(content_shell_product_name) Framework',
    456                 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
    457               ],
    458             },
    459             {
    460               # Modify the Info.plist as needed.
    461               'postbuild_name': 'Tweak Info.plist',
    462               'action': ['../build/mac/tweak_info_plist.py',
    463                          '--scm=1',
    464                          '--version=<(content_shell_version)'],
    465             },
    466             {
    467               # This postbuid step is responsible for creating the following
    468               # helpers:
    469               #
    470               # Content Shell Helper EH.app and Content Shell Helper NP.app are
    471               # created from Content Shell Helper.app.
    472               #
    473               # The EH helper is marked for an executable heap. The NP helper
    474               # is marked for no PIE (ASLR).
    475               'postbuild_name': 'Make More Helpers',
    476               'action': [
    477                 '../build/mac/make_more_helpers.sh',
    478                 'Frameworks',
    479                 '<(content_shell_product_name)',
    480               ],
    481             },
    482             {
    483               # Make sure there isn't any Objective-C in the shell's
    484               # executable.
    485               'postbuild_name': 'Verify No Objective-C',
    486               'action': [
    487                 '../build/mac/verify_no_objc.sh',
    488               ],
    489             },
    490           ],
    491         }],  # OS=="mac"
    492         ['OS=="android"', {
    493           'dependencies!': [
    494             '../tools/imagediff/image_diff.gyp:image_diff',
    495           ],
    496         }],  # OS=="android"
    497         ['OS=="android" and android_webview_build==0', {
    498           'dependencies': [
    499             '../tools/imagediff/image_diff.gyp:image_diff#host',
    500           ],
    501         }],  # OS=="android" and android_webview_build==0
    502       ],
    503     },
    504     {
    505       'target_name': 'content_shell_builder',
    506       'type': 'none',
    507       'dependencies': [
    508         'content_shell',
    509       ],
    510     },
    511   ],
    512   'conditions': [
    513     ['OS=="mac"', {
    514       'targets': [
    515         {
    516           'target_name': 'content_shell_framework',
    517           'type': 'shared_library',
    518           'product_name': '<(content_shell_product_name) Framework',
    519           'mac_bundle': 1,
    520           'mac_bundle_resources': [
    521             'shell/app/English.lproj/HttpAuth.xib',
    522             'shell/app/English.lproj/MainMenu.xib',
    523             '<(PRODUCT_DIR)/content_shell.pak'
    524           ],
    525           'dependencies': [
    526             'content_shell_lib',
    527           ],
    528           'include_dirs': [
    529             '..',
    530           ],
    531           'sources': [
    532             'shell/app/shell_content_main.cc',
    533             'shell/app/shell_content_main.h',
    534           ],
    535           'copies': [
    536             {
    537               # Copy FFmpeg binaries for audio/video support.
    538               'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Libraries',
    539               'files': [
    540                 '<(PRODUCT_DIR)/ffmpegsumo.so',
    541               ],
    542             },
    543           ],
    544           'conditions': [
    545             ['enable_webrtc==1', {
    546               'variables': {
    547                 'libpeer_target_type%': 'static_library',
    548               },
    549               'conditions': [
    550                 ['libpeer_target_type!="static_library"', {
    551                   'copies': [{
    552                    'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Libraries',
    553                    'files': [
    554                       '<(PRODUCT_DIR)/libpeerconnection.so',
    555                     ],
    556                   }],
    557                 }],
    558               ],
    559             }],
    560           ],
    561         },  # target content_shell_framework
    562         {
    563           'target_name': 'content_shell_helper_app',
    564           'type': 'executable',
    565           'variables': { 'enable_wexit_time_destructors': 1, },
    566           'product_name': '<(content_shell_product_name) Helper',
    567           'mac_bundle': 1,
    568           'dependencies': [
    569             'content_shell_framework',
    570           ],
    571           'sources': [
    572             'shell/app/shell_main.cc',
    573             'shell/app/helper-Info.plist',
    574           ],
    575           # TODO(mark): Come up with a fancier way to do this.  It should only
    576           # be necessary to list helper-Info.plist once, not the three times it
    577           # is listed here.
    578           'mac_bundle_resources!': [
    579             'shell/app/helper-Info.plist',
    580           ],
    581           # TODO(mark): For now, don't put any resources into this app.  Its
    582           # resources directory will be a symbolic link to the browser app's
    583           # resources directory.
    584           'mac_bundle_resources/': [
    585             ['exclude', '.*'],
    586           ],
    587           'xcode_settings': {
    588             'INFOPLIST_FILE': 'shell/app/helper-Info.plist',
    589           },
    590           'postbuilds': [
    591             {
    592               # The framework defines its load-time path
    593               # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
    594               # (chrome).  A different relative path needs to be used in
    595               # content_shell_helper_app.
    596               'postbuild_name': 'Fix Framework Link',
    597               'action': [
    598                 'install_name_tool',
    599                 '-change',
    600                 '/Library/Frameworks/<(content_shell_product_name) Framework.framework/Versions/A/<(content_shell_product_name) Framework',
    601                 '@executable_path/../../../../Frameworks/<(content_shell_product_name) Framework.framework/<(content_shell_product_name) Framework',
    602                 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
    603               ],
    604             },
    605             {
    606               # Modify the Info.plist as needed.  The script explains why this
    607               # is needed.  This is also done in the chrome and chrome_dll
    608               # targets.  In this case, --breakpad=0, --keystone=0, and --scm=0
    609               # are used because Breakpad, Keystone, and SCM keys are
    610               # never placed into the helper.
    611               'postbuild_name': 'Tweak Info.plist',
    612               'action': ['../build/mac/tweak_info_plist.py',
    613                          '--breakpad=0',
    614                          '--keystone=0',
    615                          '--scm=0',
    616                          '--version=<(content_shell_version)'],
    617             },
    618             {
    619               # Make sure there isn't any Objective-C in the helper app's
    620               # executable.
    621               'postbuild_name': 'Verify No Objective-C',
    622               'action': [
    623                 '../build/mac/verify_no_objc.sh',
    624               ],
    625             },
    626           ],
    627           'conditions': [
    628             ['component=="shared_library"', {
    629               'xcode_settings': {
    630                 'LD_RUNPATH_SEARCH_PATHS': [
    631                   # Get back from Content Shell.app/Contents/Frameworks/
    632                   #                                 Helper.app/Contents/MacOS
    633                   '@loader_path/../../../../../..',
    634                 ],
    635               },
    636             }],
    637           ],
    638         },  # target content_shell_helper_app
    639       ],
    640     }],  # OS=="mac"
    641     ['OS=="android"', {
    642       'targets': [
    643         {
    644           # TODO(jrg): Update this action and other jni generators to only
    645           # require specifying the java directory and generate the rest.
    646           'target_name': 'content_shell_jni_headers',
    647           'type': 'none',
    648           'sources': [
    649             'shell/android/browsertests_apk/src/org/chromium/content_browsertests_apk/ContentBrowserTestsActivity.java',
    650             'shell/android/java/src/org/chromium/content_shell/ShellLayoutTestUtils.java',
    651             'shell/android/java/src/org/chromium/content_shell/ShellManager.java',
    652             'shell/android/java/src/org/chromium/content_shell/Shell.java',
    653           ],
    654           'direct_dependent_settings': {
    655             'include_dirs': [
    656               '<(SHARED_INTERMEDIATE_DIR)/content/shell',
    657             ],
    658           },
    659           'variables': {
    660             'jni_gen_package': 'content/shell',
    661           },
    662           'includes': [ '../build/jni_generator.gypi' ],
    663         },
    664         {
    665           'target_name': 'libcontent_shell_content_view',
    666           'type': 'shared_library',
    667           'dependencies': [
    668             'content_shell_jni_headers',
    669             'content_shell_lib',
    670             'content_shell_pak',
    671             # Skia is necessary to ensure the dependencies needed by
    672             # WebContents are included.
    673             '../skia/skia.gyp:skia',
    674             '<(DEPTH)/media/media.gyp:player_android',
    675           ],
    676           'sources': [
    677             'shell/android/shell_library_loader.cc',
    678             'shell/android/shell_library_loader.h',
    679           ],
    680           'conditions': [
    681             ['android_webview_build==1', {
    682               'ldflags': [
    683                 '-lgabi++',  # For rtti
    684               ],
    685             }],
    686           ],
    687         },
    688         {
    689           'target_name': 'content_shell_java',
    690           'type': 'none',
    691           'dependencies': [
    692             'content_java',
    693           ],
    694           'variables': {
    695             'java_in_dir': '../content/shell/android/java',
    696             'has_java_resources': 1,
    697             'R_package': 'org.chromium.content_shell',
    698             'R_package_relpath': 'org/chromium/content_shell',
    699           },
    700           'includes': [ '../build/java.gypi' ],
    701         },
    702         {
    703           # content_shell_apk creates a .jar as a side effect. Any java targets
    704           # that need that .jar in their classpath should depend on this target,
    705           # content_shell_apk_java. Dependents of content_shell_apk receive its
    706           # jar path in the variable 'apk_output_jar_path'. This target should
    707           # only be used by targets which instrument content_shell_apk.
    708           'target_name': 'content_shell_apk_java',
    709           'type': 'none',
    710           'dependencies': [
    711             'content_shell_apk',
    712           ],
    713           'includes': [ '../build/apk_fake_jar.gypi' ],
    714         },
    715         {
    716           'target_name': 'content_shell_apk',
    717           'type': 'none',
    718           'dependencies': [
    719             'content_java',
    720             'content_java_test_support',
    721             'content_shell_java',
    722             'libcontent_shell_content_view',
    723             '../base/base.gyp:base_java',
    724             '../media/media.gyp:media_java',
    725             '../net/net.gyp:net_java',
    726             '../ui/ui.gyp:ui_java',
    727           ],
    728           'variables': {
    729             'apk_name': 'ContentShell',
    730             'manifest_package_name': 'org.chromium.content_shell_apk',
    731             'java_in_dir': 'shell/android/shell_apk',
    732             'resource_dir': 'shell/android/shell_apk/res',
    733             'native_lib_target': 'libcontent_shell_content_view',
    734             'additional_input_paths': ['<(PRODUCT_DIR)/content_shell/assets/content_shell.pak'],
    735             'asset_location': '<(ant_build_out)/content_shell/assets',
    736           },
    737           'conditions': [
    738             ['android_webview_build==0', {
    739               'dependencies': [
    740                 '../tools/imagediff/image_diff.gyp:image_diff#host',
    741               ],
    742             }],
    743           ],
    744           'includes': [ '../build/java_apk.gypi' ],
    745         },
    746       ],
    747     }],  # OS=="android"
    748   ]
    749 }
    750