Home | History | Annotate | Download | only in ppapi
      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   },
      9   'target_defaults': {
     10     'conditions': [
     11       # Linux shared libraries should always be built -fPIC.
     12       #
     13       # TODO(ajwong): For internal pepper plugins, which are statically linked
     14       # into chrome, do we want to build w/o -fPIC?  If so, how can we express
     15       # that in the build system?
     16       ['os_posix==1 and OS!="android" and OS!="mac"', {
     17         'cflags': ['-fPIC', '-fvisibility=hidden'],
     18 
     19         # This is needed to make the Linux shlib build happy. Without this,
     20         # -fvisibility=hidden gets stripped by the exclusion in common.gypi
     21         # that is triggered when a shared library build is specified.
     22         'cflags/': [['include', '^-fvisibility=hidden$']],
     23       }],
     24     ],
     25   },
     26   'includes': [
     27     'ppapi_sources.gypi',
     28     'ppapi_host.gypi',
     29     'ppapi_ipc.gypi',
     30     'ppapi_proxy.gypi',
     31     'ppapi_shared.gypi',
     32     'ppapi_tests.gypi',
     33   ],
     34   'targets': [
     35     {
     36       # GN version: //ppapi:ppapi_shared
     37       'target_name': 'ppapi_shared',
     38       'type': '<(component)',
     39       'variables': {
     40         # Set the ppapi_shared_target variable, so that we will pull in the
     41         # sources from ppapi_shared.gypi (and only from there). We follow the
     42         # same pattern for the other targets defined within this file.
     43         'ppapi_shared_target': 1,
     44       },
     45       'dependencies': [
     46         '../base/base.gyp:base',
     47         '../base/base.gyp:base_i18n',
     48         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
     49         '../gpu/command_buffer/command_buffer.gyp:gles2_utils',
     50         '../gpu/gpu.gyp:command_buffer_client',
     51         '../gpu/gpu.gyp:gles2_implementation',
     52         '../ipc/ipc.gyp:ipc',
     53         '../media/media.gyp:shared_memory_support',
     54         '../skia/skia.gyp:skia',
     55         '../third_party/icu/icu.gyp:icuuc',
     56         '../ui/events/events.gyp:events_base',
     57         '../ui/surface/surface.gyp:surface',
     58         '../url/url.gyp:url_lib',
     59         'ppapi.gyp:ppapi_c',
     60       ],
     61       'export_dependent_settings': [
     62         '../base/base.gyp:base',
     63       ],
     64       'conditions': [
     65         ['OS=="mac"', {
     66           'link_settings': {
     67             'libraries': [
     68               '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
     69             ],
     70           },
     71         }],
     72         ['chrome_multiple_dll==1', {
     73           'dependencies': [
     74             '../third_party/WebKit/public/blink.gyp:blink_minimal',
     75           ],
     76           'export_dependent_settings': [
     77             '../third_party/WebKit/public/blink.gyp:blink_minimal',
     78           ],
     79         }, {
     80           'dependencies': [
     81             '../third_party/WebKit/public/blink.gyp:blink',
     82           ],
     83           'export_dependent_settings': [
     84             '../third_party/WebKit/public/blink.gyp:blink',
     85           ],
     86         }],
     87       ],
     88       # Disable c4267 warnings until we fix size_t to int truncations.
     89       'msvs_disabled_warnings': [ 4267, ],
     90     },
     91   ],
     92   'conditions': [
     93     ['component=="static_library"', {
     94       # In a static build, build ppapi_ipc separately.
     95       'targets': [
     96         {
     97           # GN version: //ppapi:ppapi_ipc
     98           'target_name': 'ppapi_ipc',
     99           'type': 'static_library',
    100           'variables': {
    101             'ppapi_ipc_target': 1,
    102           },
    103           'dependencies': [
    104             '../base/base.gyp:base',
    105             '../gpu/gpu.gyp:gpu_ipc',
    106             '../ipc/ipc.gyp:ipc',
    107             '../skia/skia.gyp:skia',
    108             '../ui/events/ipc/events_ipc.gyp:events_ipc',
    109             'ppapi.gyp:ppapi_c',
    110             'ppapi_shared',
    111           ],
    112           'all_dependent_settings': {
    113             'include_dirs': [
    114                 '..',
    115             ],
    116           },
    117         },
    118         {
    119           # GN version: //ppapi:ppapi_proxy
    120           'target_name': 'ppapi_proxy',
    121           'type': 'static_library',
    122           'variables': {
    123             'ppapi_proxy_target': 1,
    124           },
    125           'dependencies': [
    126             '../base/base.gyp:base',
    127             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
    128             '../gpu/gpu.gyp:gles2_implementation',
    129             '../gpu/gpu.gyp:gpu_ipc',
    130             '../media/media.gyp:shared_memory_support',
    131             '../ipc/ipc.gyp:ipc',
    132             '../skia/skia.gyp:skia',
    133             '../third_party/icu/icu.gyp:icuuc',
    134             '../third_party/icu/icu.gyp:icui18n',
    135             '../ui/events/events.gyp:events_base',
    136             '../ui/surface/surface.gyp:surface',
    137             'ppapi.gyp:ppapi_c',
    138             'ppapi_shared',
    139             'ppapi_ipc',
    140           ],
    141           'all_dependent_settings': {
    142             'include_dirs': [
    143                 '..',
    144             ],
    145           },
    146           # Disable c4267 warnings until we fix size_t to int truncations.
    147           'msvs_disabled_warnings': [ 4267, ],
    148           'conditions': [
    149             ['chrome_multiple_dll==1', {
    150               'dependencies': [
    151                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
    152               ],
    153             }, {
    154               'dependencies': [
    155                 '../third_party/WebKit/public/blink.gyp:blink',
    156               ],
    157             }],
    158           ],
    159         },
    160       ],
    161     },
    162     { # component != static_library
    163       # In the component build, we'll just build ppapi_ipc in to ppapi_proxy.
    164       'targets': [
    165         {
    166           # GN version: //ppapi:ppapi_proxy
    167           'target_name': 'ppapi_proxy',
    168           'type': 'shared_library',
    169           'variables': {
    170             # Setting both variables means we pull in the sources from both
    171             # ppapi_ipc.gypi and ppapi_proxy.gypi.
    172             'ppapi_ipc_target': 1,
    173             'ppapi_proxy_target': 1,
    174           },
    175           'dependencies': [
    176             '../base/base.gyp:base',
    177             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
    178             '../gpu/gpu.gyp:gles2_implementation',
    179             '../gpu/gpu.gyp:gpu_ipc',
    180             '../media/media.gyp:shared_memory_support',
    181             '../ipc/ipc.gyp:ipc',
    182             '../skia/skia.gyp:skia',
    183             '../third_party/icu/icu.gyp:icuuc',
    184             '../third_party/icu/icu.gyp:icui18n',
    185             '../ui/events/events.gyp:events_base',
    186             '../ui/events/ipc/events_ipc.gyp:events_ipc',
    187             '../ui/surface/surface.gyp:surface',
    188             'ppapi.gyp:ppapi_c',
    189             'ppapi_shared',
    190           ],
    191           'all_dependent_settings': {
    192             'include_dirs': [
    193                 '..',
    194             ],
    195           },
    196           # Disable c4267 warnings until we fix size_t to int truncations.
    197           'msvs_disabled_warnings': [ 4267, ],
    198           'conditions': [
    199             ['chrome_multiple_dll==1', {
    200               'dependencies': [
    201                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
    202               ],
    203             }, {
    204               'dependencies': [
    205                 '../third_party/WebKit/public/blink.gyp:blink',
    206               ],
    207             }],
    208           ],
    209         },
    210         {
    211           # In component build, this is just a phony target that makes sure
    212           # ppapi_proxy is built, since that's where the ipc sources go in the
    213           # component build.
    214           'target_name': 'ppapi_ipc',
    215           'type': 'none',
    216           'dependencies': [
    217             'ppapi_proxy',
    218           ],
    219         },
    220       ],
    221     }],
    222     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
    223       # In windows builds, we also want to define some targets to build in
    224       # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit
    225       # Windows).
    226       'targets': [
    227         {
    228           # GN version: //ppapi:ppapi_shared
    229           # (Should be automagical when compiling in the 64-bit toolchain.)
    230           'target_name': 'ppapi_shared_win64',
    231           'type': '<(component)',
    232           'variables': {
    233             'nacl_win64_target': 1,
    234             'ppapi_shared_target': 1,
    235           },
    236           'dependencies': [
    237             'ppapi.gyp:ppapi_c',
    238             '../base/base.gyp:base_win64',
    239             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
    240             '../gpu/gpu.gyp:command_buffer_common_win64',
    241             '../ipc/ipc.gyp:ipc_win64',
    242             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
    243           ],
    244           'defines': [
    245             '<@(nacl_win64_defines)',
    246           ],              
    247           'export_dependent_settings': [
    248             '../base/base.gyp:base_win64',
    249           ],
    250           'configurations': {
    251             'Common_Base': {
    252               'msvs_target_platform': 'x64',
    253             },
    254           },
    255         },
    256         {
    257           # GN version: //ppapi:ppapi_ipc
    258           # (Should be automagical when compiling in the 64-bit toolchain.)
    259           'target_name': 'ppapi_ipc_win64',
    260           'type': 'static_library',
    261           'variables': {
    262             'nacl_win64_target': 1,
    263             'ppapi_ipc_target': 1,
    264           },
    265           'dependencies': [
    266             '../base/base.gyp:base_win64',
    267             '../ipc/ipc.gyp:ipc_win64',
    268             '../gpu/gpu.gyp:gpu_ipc_win64',
    269             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
    270             'ppapi.gyp:ppapi_c',
    271             'ppapi_shared_win64',
    272           ],
    273           'export_dependent_settings': [
    274             '../gpu/gpu.gyp:gpu_ipc_win64',
    275           ],
    276           'defines': [
    277             '<@(nacl_win64_defines)',
    278           ],              
    279           'all_dependent_settings': {
    280             'include_dirs': [
    281                '..',
    282             ],
    283           },
    284           'configurations': {
    285             'Common_Base': {
    286               'msvs_target_platform': 'x64',
    287             },
    288           },
    289       }],
    290     }],
    291   ],
    292 }
    293