Home | History | Annotate | Download | only in native_client
      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   'includes': [
      7     '../../build/common_untrusted.gypi',
      8   ],
      9   'conditions': [
     10     ['disable_nacl==0 and disable_nacl_untrusted==0', {
     11       'targets': [
     12         {
     13           'target_name': 'ppapi_lib',
     14           'type': 'none',
     15           'dependencies': [
     16              '../../native_client/src/untrusted/pthread/pthread.gyp:pthread_lib',
     17              'src/untrusted/irt_stub/irt_stub.gyp:ppapi_stub_lib',
     18           ],
     19           'include_dirs': [
     20             '..',
     21           ],
     22           'copies': [
     23             {
     24               'destination': '>(tc_include_dir_newlib)/nacl',
     25               'files': [
     26                 'src/trusted/weak_ref/call_on_main_thread.h',
     27                 'src/shared/ppapi_proxy/ppruntime.h',
     28               ],
     29             },
     30 
     31             {
     32               'destination': '>(tc_lib_dir_pnacl_newlib)',
     33               'files': [
     34                 'src/untrusted/irt_stub/libppapi.a',
     35               ],
     36             },
     37           ],
     38           'conditions': [
     39             ['target_arch=="ia32" or target_arch=="x64"', {
     40               'copies': [
     41                 {
     42                   'destination': '>(tc_include_dir_glibc)/include/nacl',
     43                   'files': [
     44                     'src/trusted/weak_ref/call_on_main_thread.h',
     45                     'src/shared/ppapi_proxy/ppruntime.h',
     46                   ],
     47                 },
     48               ],
     49             }],
     50             ['target_arch=="ia32"', {
     51               'copies': [
     52                 # Here we copy linker scripts out of the Native Client repo..
     53                 # These are source, not build artifacts.
     54                 {
     55                   'destination': '>(tc_lib_dir_newlib32)',
     56                   'files': [
     57                     'src/untrusted/irt_stub/libppapi.a',
     58                   ],
     59                 },
     60                 {
     61                   'destination': '>(tc_lib_dir_glibc32)',
     62                   'files': [
     63                     'src/untrusted/irt_stub/libppapi.a',
     64                     'src/untrusted/irt_stub/libppapi.so',
     65                   ],
     66                 },
     67               ],
     68             }],
     69             ['target_arch=="x64" or (target_arch=="ia32" and OS=="win")', {
     70               'copies': [
     71                 {
     72                   'destination': '>(tc_lib_dir_newlib64)',
     73                   'files': [
     74                     'src/untrusted/irt_stub/libppapi.a',
     75                   ],
     76                 },
     77                 {
     78                   'destination': '>(tc_lib_dir_glibc64)',
     79                   'files': [
     80                     'src/untrusted/irt_stub/libppapi.a',
     81                     'src/untrusted/irt_stub/libppapi.so',
     82                   ],
     83                 },
     84               ]
     85             }],
     86             ['target_arch=="arm"', {
     87               'copies': [
     88                 {
     89                   'destination': '>(tc_lib_dir_newlib_arm)',
     90                   'files': [
     91                     'src/untrusted/irt_stub/libppapi.a',
     92                   ],
     93                 },
     94               ]
     95             }],
     96             ['target_arch=="mipsel"', {
     97               'copies': [
     98                 {
     99                   'destination': '>(tc_lib_dir_newlib_mips)',
    100                   'files': [
    101                     'src/untrusted/irt_stub/libppapi.a',
    102                   ],
    103                 },
    104               ]
    105             }]
    106           ],
    107         },
    108         {
    109           'target_name': 'nacl_irt',
    110           'type': 'none',
    111           'variables': {
    112             'nexe_target': 'nacl_irt',
    113             # These out_* fields override the default filenames, which
    114             # include a "_newlib" suffix and places them in the target
    115             # directory.
    116             'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
    117             'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
    118             'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
    119             'out_newlib_mips': '<(PRODUCT_DIR)/nacl_irt_mips32.nexe',
    120             'build_glibc': 0,
    121             'build_newlib': 0,
    122             'build_irt': 1,
    123             'include_dirs': [
    124               '..',
    125             ],
    126             'link_flags': [
    127               '-Wl,--start-group',
    128               '-lirt_browser',
    129               '-llatency_info_nacl',
    130               '-lpnacl_irt_shim_for_irt',
    131               '-lppapi_proxy_nacl',
    132               '-lppapi_ipc_nacl',
    133               '-lppapi_shared_nacl',
    134               '-lgles2_implementation_nacl',
    135               '-lgles2_cmd_helper_nacl',
    136               '-lgles2_utils_nacl',
    137               '-lcommand_buffer_client_nacl',
    138               '-lcommand_buffer_common_nacl',
    139               '-ltracing_nacl',
    140               '-lgpu_ipc_nacl',
    141               '-lipc_nacl',
    142               '-lbase_nacl',
    143               '-lshared_memory_support_nacl',
    144               '-lsrpc',
    145               '-limc_syscalls',
    146               '-lplatform',
    147               '-lgio',
    148               '-Wl,--end-group',
    149               '-lm',
    150             ],
    151             'extra_args': [
    152               '--strip-all',
    153             ],
    154             'conditions': [
    155               # untrusted.gypi and build_nexe.py currently build
    156               # both x86-32 and x86-64 whenever target_arch is some
    157               # flavor of x86.  However, on non-windows platforms
    158               # we only need one architecture.
    159               ['OS!="win" and target_arch=="ia32"',
    160                 {
    161                   'enable_x86_64': 0
    162                 }
    163               ],
    164               ['target_arch=="x64"',
    165                 {
    166                   'enable_x86_32': 0
    167                 }
    168               ],
    169               ['target_arch=="ia32" or target_arch=="x64"', {
    170                 'extra_deps_newlib64': [
    171                   '>(tc_lib_dir_irt64)/libppapi_proxy_nacl.a',
    172                   '>(tc_lib_dir_irt64)/libppapi_ipc_nacl.a',
    173                   '>(tc_lib_dir_irt64)/libppapi_shared_nacl.a',
    174                   '>(tc_lib_dir_irt64)/libgles2_implementation_nacl.a',
    175                   '>(tc_lib_dir_irt64)/libcommand_buffer_client_nacl.a',
    176                   '>(tc_lib_dir_irt64)/libcommand_buffer_common_nacl.a',
    177                   '>(tc_lib_dir_irt64)/libgpu_ipc_nacl.a',
    178                   '>(tc_lib_dir_irt64)/libtracing_nacl.a',
    179                   '>(tc_lib_dir_irt64)/libgles2_cmd_helper_nacl.a',
    180                   '>(tc_lib_dir_irt64)/libgles2_utils_nacl.a',
    181                   '>(tc_lib_dir_irt64)/libipc_nacl.a',
    182                   '>(tc_lib_dir_irt64)/libbase_nacl.a',
    183                   '>(tc_lib_dir_irt64)/libirt_browser.a',
    184                   '>(tc_lib_dir_irt64)/libpnacl_irt_shim_for_irt.a',
    185                   '>(tc_lib_dir_irt64)/libshared_memory_support_nacl.a',
    186                   '>(tc_lib_dir_irt64)/libsrpc.a',
    187                   '>(tc_lib_dir_irt64)/libplatform.a',
    188                   '>(tc_lib_dir_irt64)/libimc_syscalls.a',
    189                   '>(tc_lib_dir_irt64)/libgio.a',
    190                 ],
    191                 'extra_deps_newlib32': [
    192                   '>(tc_lib_dir_irt32)/libppapi_proxy_nacl.a',
    193                   '>(tc_lib_dir_irt32)/libppapi_ipc_nacl.a',
    194                   '>(tc_lib_dir_irt32)/libppapi_shared_nacl.a',
    195                   '>(tc_lib_dir_irt32)/libgles2_implementation_nacl.a',
    196                   '>(tc_lib_dir_irt32)/libcommand_buffer_client_nacl.a',
    197                   '>(tc_lib_dir_irt32)/libcommand_buffer_common_nacl.a',
    198                   '>(tc_lib_dir_irt32)/libgpu_ipc_nacl.a',
    199                   '>(tc_lib_dir_irt32)/libtracing_nacl.a',
    200                   '>(tc_lib_dir_irt32)/libgles2_cmd_helper_nacl.a',
    201                   '>(tc_lib_dir_irt32)/libgles2_utils_nacl.a',
    202                   '>(tc_lib_dir_irt32)/libipc_nacl.a',
    203                   '>(tc_lib_dir_irt32)/libbase_nacl.a',
    204                   '>(tc_lib_dir_irt32)/libirt_browser.a',
    205                   '>(tc_lib_dir_irt32)/libpnacl_irt_shim_for_irt.a',
    206                   '>(tc_lib_dir_irt32)/libshared_memory_support_nacl.a',
    207                   '>(tc_lib_dir_irt32)/libsrpc.a',
    208                   '>(tc_lib_dir_irt32)/libplatform.a',
    209                   '>(tc_lib_dir_irt32)/libimc_syscalls.a',
    210                   '>(tc_lib_dir_irt32)/libgio.a',
    211                 ],
    212               }],
    213               ['target_arch=="arm"', {
    214                 'extra_deps_arm': [
    215                   '>(tc_lib_dir_irt_arm)/libppapi_proxy_nacl.a',
    216                   '>(tc_lib_dir_irt_arm)/libppapi_ipc_nacl.a',
    217                   '>(tc_lib_dir_irt_arm)/libppapi_shared_nacl.a',
    218                   '>(tc_lib_dir_irt_arm)/libgles2_implementation_nacl.a',
    219                   '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_nacl.a',
    220                   '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_nacl.a',
    221                   '>(tc_lib_dir_irt_arm)/libgpu_ipc_nacl.a',
    222                   '>(tc_lib_dir_irt_arm)/libtracing_nacl.a',
    223                   '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_nacl.a',
    224                   '>(tc_lib_dir_irt_arm)/libgles2_utils_nacl.a',
    225                   '>(tc_lib_dir_irt_arm)/libipc_nacl.a',
    226                   '>(tc_lib_dir_irt_arm)/libbase_nacl.a',
    227                   '>(tc_lib_dir_irt_arm)/libirt_browser.a',
    228                   '>(tc_lib_dir_irt_arm)/libpnacl_irt_shim_for_irt.a',
    229                   '>(tc_lib_dir_irt_arm)/libshared_memory_support_nacl.a',
    230                   '>(tc_lib_dir_irt_arm)/libsrpc.a',
    231                   '>(tc_lib_dir_irt_arm)/libplatform.a',
    232                   '>(tc_lib_dir_irt_arm)/libimc_syscalls.a',
    233                   '>(tc_lib_dir_irt_arm)/libgio.a',
    234                 ],
    235               }],
    236               ['target_arch=="mipsel"', {
    237                 'extra_deps_mips': [
    238                   '>(tc_lib_dir_irt_mips)/libppapi_proxy_nacl.a',
    239                   '>(tc_lib_dir_irt_mips)/libppapi_ipc_nacl.a',
    240                   '>(tc_lib_dir_irt_mips)/libppapi_shared_nacl.a',
    241                   '>(tc_lib_dir_irt_mips)/libgles2_implementation_nacl.a',
    242                   '>(tc_lib_dir_irt_mips)/libcommand_buffer_client_nacl.a',
    243                   '>(tc_lib_dir_irt_mips)/libcommand_buffer_common_nacl.a',
    244                   '>(tc_lib_dir_irt_mips)/libgpu_ipc_nacl.a',
    245                   '>(tc_lib_dir_irt_mips)/libtracing_nacl.a',
    246                   '>(tc_lib_dir_irt_mips)/libgles2_cmd_helper_nacl.a',
    247                   '>(tc_lib_dir_irt_mips)/libgles2_utils_nacl.a',
    248                   '>(tc_lib_dir_irt_mips)/libipc_nacl.a',
    249                   '>(tc_lib_dir_irt_mips)/libbase_nacl.a',
    250                   '>(tc_lib_dir_irt_mips)/libirt_browser.a',
    251                   '>(tc_lib_dir_irt_mips)/libpnacl_irt_shim_for_irt.a',
    252                   '>(tc_lib_dir_irt_mips)/libshared_memory_support_nacl.a',
    253                   '>(tc_lib_dir_irt_mips)/libsrpc.a',
    254                   '>(tc_lib_dir_irt_mips)/libplatform.a',
    255                   '>(tc_lib_dir_irt_mips)/libimc_syscalls.a',
    256                   '>(tc_lib_dir_irt_mips)/libgio.a',
    257                 ],
    258               }],
    259             ],
    260           },
    261           'dependencies': [
    262             'src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:irt',
    263             '../ppapi_proxy_nacl.gyp:ppapi_proxy_nacl',
    264             '../ppapi_ipc_nacl.gyp:ppapi_ipc_nacl',
    265             '../ppapi_shared_nacl.gyp:ppapi_shared_nacl',
    266             '../../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
    267             '../../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
    268             '../../gpu/gpu_nacl.gyp:command_buffer_common_nacl',
    269             '../../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
    270             '../../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl',
    271             '../../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
    272             '../../components/tracing_nacl.gyp:tracing_nacl',
    273             '../../ipc/ipc_nacl.gyp:ipc_nacl',
    274             '../../base/base_nacl.gyp:base_nacl',
    275             '../../media/media_nacl.gyp:shared_memory_support_nacl',
    276             '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
    277             '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
    278             '../../native_client/src/shared/platform/platform.gyp:platform_lib',
    279             '../../native_client/src/tools/tls_edit/tls_edit.gyp:tls_edit#host',
    280             '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
    281             '../../native_client/src/shared/gio/gio.gyp:gio_lib',
    282           ],
    283         },
    284       ],
    285     }],
    286   ],
    287 }
    288