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!="arm"', {
     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                 # Here we copy linker scripts out of the Native Client repo..
     49                 # These are source, not build artifacts.
     50                 {
     51                   'destination': '>(tc_lib_dir_newlib32)',
     52                   'files': [
     53                     'src/untrusted/irt_stub/libppapi.a',
     54                   ],
     55                 },
     56                 {
     57                   'destination': '>(tc_lib_dir_newlib64)',
     58                   'files': [
     59                     'src/untrusted/irt_stub/libppapi.a',
     60                   ],
     61                 },
     62                 {
     63                   'destination': '>(tc_lib_dir_glibc32)',
     64                   'files': [
     65                     'src/untrusted/irt_stub/libppapi.a',
     66                     'src/untrusted/irt_stub/libppapi.so',
     67                   ],
     68                 },
     69                 {
     70                   'destination': '>(tc_lib_dir_glibc64)',
     71                   'files': [
     72                     'src/untrusted/irt_stub/libppapi.a',
     73                     'src/untrusted/irt_stub/libppapi.so',
     74                   ],
     75                 },
     76               ]
     77             }],
     78             ['target_arch=="arm"', {
     79               'copies': [
     80                 {
     81                   'destination': '>(tc_lib_dir_newlib_arm)',
     82                   'files': [
     83                     'src/untrusted/irt_stub/libppapi.a',
     84                   ],
     85                 },
     86               ]
     87             }]
     88           ],
     89         },
     90         {
     91           'target_name': 'nacl_irt',
     92           'type': 'none',
     93           'variables': {
     94             'nexe_target': 'nacl_irt',
     95             # These out_* fields override the default filenames, which
     96             # include a "_newlib" suffix.
     97             'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
     98             'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
     99             'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
    100             'build_glibc': 0,
    101             'build_newlib': 0,
    102             'build_irt': 1,
    103             'include_dirs': [
    104               'lib/gl/include',
    105               '..',
    106             ],
    107             'link_flags': [
    108               '-Wl,--start-group',
    109               '-lirt_browser',
    110               '-lppapi_proxy_untrusted',
    111               '-lppapi_ipc_untrusted',
    112               '-lppapi_shared_untrusted',
    113               '-lgles2_implementation_untrusted',
    114               '-lgles2_cmd_helper_untrusted',
    115               '-lgles2_utils_untrusted',
    116               '-lcommand_buffer_client_untrusted',
    117               '-lcommand_buffer_common_untrusted',
    118               '-ltracing_untrusted',
    119               '-lgpu_ipc_untrusted',
    120               '-lipc_untrusted',
    121               '-lbase_untrusted',
    122               '-lshared_memory_support_untrusted',
    123               '-lsrpc',
    124               '-limc_syscalls',
    125               '-lplatform',
    126               '-lgio',
    127               '-Wl,--end-group',
    128               '-lm',
    129             ],
    130             'extra_args': [
    131               '--strip-all',
    132             ],
    133             'conditions': [
    134               # untrusted.gypi and build_nexe.py currently build
    135               # both x86-32 and x86-64 whenever target_arch is some
    136               # flavor of x86.  However, on non-windows platforms
    137               # we only need one architecture.
    138               ['OS!="win" and target_arch=="ia32"',
    139                 {
    140                   'enable_x86_64': 0
    141                 }
    142               ],
    143               ['target_arch=="x64"',
    144                 {
    145                   'enable_x86_32': 0
    146                 }
    147               ],
    148               ['target_arch!="arm"', {
    149                 'extra_deps_newlib64': [
    150                   '>(tc_lib_dir_irt64)/libppapi_proxy_untrusted.a',
    151                   '>(tc_lib_dir_irt64)/libppapi_ipc_untrusted.a',
    152                   '>(tc_lib_dir_irt64)/libppapi_shared_untrusted.a',
    153                   '>(tc_lib_dir_irt64)/libgles2_implementation_untrusted.a',
    154                   '>(tc_lib_dir_irt64)/libcommand_buffer_client_untrusted.a',
    155                   '>(tc_lib_dir_irt64)/libcommand_buffer_common_untrusted.a',
    156                   '>(tc_lib_dir_irt64)/libgpu_ipc_untrusted.a',
    157                   '>(tc_lib_dir_irt64)/libtracing_untrusted.a',
    158                   '>(tc_lib_dir_irt64)/libgles2_cmd_helper_untrusted.a',
    159                   '>(tc_lib_dir_irt64)/libgles2_utils_untrusted.a',
    160                   '>(tc_lib_dir_irt64)/libipc_untrusted.a',
    161                   '>(tc_lib_dir_irt64)/libbase_untrusted.a',
    162                   '>(tc_lib_dir_irt64)/libirt_browser.a',
    163                   '>(tc_lib_dir_irt64)/libshared_memory_support_untrusted.a',
    164                   '>(tc_lib_dir_irt64)/libsrpc.a',
    165                   '>(tc_lib_dir_irt64)/libplatform.a',
    166                   '>(tc_lib_dir_irt64)/libimc_syscalls.a',
    167                   '>(tc_lib_dir_irt64)/libgio.a',
    168                 ],
    169                 'extra_deps_newlib32': [
    170                   '>(tc_lib_dir_irt32)/libppapi_proxy_untrusted.a',
    171                   '>(tc_lib_dir_irt32)/libppapi_ipc_untrusted.a',
    172                   '>(tc_lib_dir_irt32)/libppapi_shared_untrusted.a',
    173                   '>(tc_lib_dir_irt32)/libgles2_implementation_untrusted.a',
    174                   '>(tc_lib_dir_irt32)/libcommand_buffer_client_untrusted.a',
    175                   '>(tc_lib_dir_irt32)/libcommand_buffer_common_untrusted.a',
    176                   '>(tc_lib_dir_irt32)/libgpu_ipc_untrusted.a',
    177                   '>(tc_lib_dir_irt32)/libtracing_untrusted.a',
    178                   '>(tc_lib_dir_irt32)/libgles2_cmd_helper_untrusted.a',
    179                   '>(tc_lib_dir_irt32)/libgles2_utils_untrusted.a',
    180                   '>(tc_lib_dir_irt32)/libipc_untrusted.a',
    181                   '>(tc_lib_dir_irt32)/libbase_untrusted.a',
    182                   '>(tc_lib_dir_irt32)/libirt_browser.a',
    183                   '>(tc_lib_dir_irt32)/libshared_memory_support_untrusted.a',
    184                   '>(tc_lib_dir_irt32)/libsrpc.a',
    185                   '>(tc_lib_dir_irt32)/libplatform.a',
    186                   '>(tc_lib_dir_irt32)/libimc_syscalls.a',
    187                   '>(tc_lib_dir_irt32)/libgio.a',
    188                 ],
    189               }],
    190               ['target_arch=="arm"', {
    191                 'extra_deps_arm': [
    192                   '>(tc_lib_dir_irt_arm)/libppapi_proxy_untrusted.a',
    193                   '>(tc_lib_dir_irt_arm)/libppapi_ipc_untrusted.a',
    194                   '>(tc_lib_dir_irt_arm)/libppapi_shared_untrusted.a',
    195                   '>(tc_lib_dir_irt_arm)/libgles2_implementation_untrusted.a',
    196                   '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_untrusted.a',
    197                   '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_untrusted.a',
    198                   '>(tc_lib_dir_irt_arm)/libgpu_ipc_untrusted.a',
    199                   '>(tc_lib_dir_irt_arm)/libtracing_untrusted.a',
    200                   '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_untrusted.a',
    201                   '>(tc_lib_dir_irt_arm)/libgles2_utils_untrusted.a',
    202                   '>(tc_lib_dir_irt_arm)/libipc_untrusted.a',
    203                   '>(tc_lib_dir_irt_arm)/libbase_untrusted.a',
    204                   '>(tc_lib_dir_irt_arm)/libirt_browser.a',
    205                   '>(tc_lib_dir_irt_arm)/libshared_memory_support_untrusted.a',
    206                   '>(tc_lib_dir_irt_arm)/libsrpc.a',
    207                   '>(tc_lib_dir_irt_arm)/libplatform.a',
    208                   '>(tc_lib_dir_irt_arm)/libimc_syscalls.a',
    209                   '>(tc_lib_dir_irt_arm)/libgio.a',
    210                 ],
    211               }],
    212             ],
    213           },
    214           'dependencies': [
    215             '../ppapi_proxy_untrusted.gyp:ppapi_proxy_untrusted',
    216             '../ppapi_ipc_untrusted.gyp:ppapi_ipc_untrusted',
    217             '../ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
    218             '../../gpu/command_buffer/command_buffer_untrusted.gyp:gles2_utils_untrusted',
    219             '../../gpu/gpu_untrusted.gyp:command_buffer_client_untrusted',
    220             '../../gpu/gpu_untrusted.gyp:command_buffer_common_untrusted',
    221             '../../gpu/gpu_untrusted.gyp:gles2_implementation_untrusted',
    222             '../../gpu/gpu_untrusted.gyp:gles2_cmd_helper_untrusted',
    223             '../../gpu/gpu_untrusted.gyp:gpu_ipc_untrusted',
    224             '../../components/tracing_untrusted.gyp:tracing_untrusted',
    225             '../../ipc/ipc_untrusted.gyp:ipc_untrusted',
    226             '../../base/base_untrusted.gyp:base_untrusted',
    227             '../../media/media_untrusted.gyp:shared_memory_support_untrusted',
    228             '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
    229             '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
    230             '../../native_client/src/shared/platform/platform.gyp:platform_lib',
    231             '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
    232             '../../native_client/src/shared/gio/gio.gyp:gio_lib',
    233           ],
    234         },
    235       ],
    236     }],
    237   ],
    238 }
    239