• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                # 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            ['target_arch=="mipsel"', {
89              'copies': [
90                {
91                  'destination': '>(tc_lib_dir_newlib_mips)',
92                  'files': [
93                    'src/untrusted/irt_stub/libppapi.a',
94                  ],
95                },
96              ]
97            }]
98          ],
99        },
100        {
101          'target_name': 'nacl_irt',
102          'type': 'none',
103          'variables': {
104            'nexe_target': 'nacl_irt',
105            # These out_* fields override the default filenames, which
106            # include a "_newlib" suffix and places them in the target
107            # directory.
108            'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
109            'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
110            'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
111            'out_newlib_mips': '<(PRODUCT_DIR)/nacl_irt_mips32.nexe',
112            'build_glibc': 0,
113            'build_newlib': 0,
114            'build_irt': 1,
115            'include_dirs': [
116              'lib/gl/include',
117              '..',
118            ],
119            'link_flags': [
120              '-Wl,--start-group',
121              '-lirt_browser',
122              '-llatency_info_nacl',
123              '-lpnacl_irt_shim_for_irt',
124              '-lppapi_proxy_nacl',
125              '-lppapi_ipc_nacl',
126              '-lppapi_shared_nacl',
127              '-lgles2_implementation_nacl',
128              '-lgles2_cmd_helper_nacl',
129              '-lgles2_utils_nacl',
130              '-lcommand_buffer_client_nacl',
131              '-lcommand_buffer_common_nacl',
132              '-ltracing_nacl',
133              '-lgpu_ipc_nacl',
134              '-lipc_nacl',
135              '-lbase_nacl',
136              '-lshared_memory_support_nacl',
137              '-lsrpc',
138              '-limc_syscalls',
139              '-lplatform',
140              '-lgio',
141              '-Wl,--end-group',
142              '-lm',
143            ],
144            'extra_args': [
145              '--strip-all',
146            ],
147            'conditions': [
148              # untrusted.gypi and build_nexe.py currently build
149              # both x86-32 and x86-64 whenever target_arch is some
150              # flavor of x86.  However, on non-windows platforms
151              # we only need one architecture.
152              ['OS!="win" and target_arch=="ia32"',
153                {
154                  'enable_x86_64': 0
155                }
156              ],
157              ['target_arch=="x64"',
158                {
159                  'enable_x86_32': 0
160                }
161              ],
162              ['target_arch=="ia32" or target_arch=="x64"', {
163                'extra_deps_newlib64': [
164                  '>(tc_lib_dir_irt64)/libppapi_proxy_nacl.a',
165                  '>(tc_lib_dir_irt64)/libppapi_ipc_nacl.a',
166                  '>(tc_lib_dir_irt64)/libppapi_shared_nacl.a',
167                  '>(tc_lib_dir_irt64)/libgles2_implementation_nacl.a',
168                  '>(tc_lib_dir_irt64)/libcommand_buffer_client_nacl.a',
169                  '>(tc_lib_dir_irt64)/libcommand_buffer_common_nacl.a',
170                  '>(tc_lib_dir_irt64)/libgpu_ipc_nacl.a',
171                  '>(tc_lib_dir_irt64)/libtracing_nacl.a',
172                  '>(tc_lib_dir_irt64)/libgles2_cmd_helper_nacl.a',
173                  '>(tc_lib_dir_irt64)/libgles2_utils_nacl.a',
174                  '>(tc_lib_dir_irt64)/libipc_nacl.a',
175                  '>(tc_lib_dir_irt64)/libbase_nacl.a',
176                  '>(tc_lib_dir_irt64)/libirt_browser.a',
177                  '>(tc_lib_dir_irt64)/libpnacl_irt_shim_for_irt.a',
178                  '>(tc_lib_dir_irt64)/libshared_memory_support_nacl.a',
179                  '>(tc_lib_dir_irt64)/libsrpc.a',
180                  '>(tc_lib_dir_irt64)/libplatform.a',
181                  '>(tc_lib_dir_irt64)/libimc_syscalls.a',
182                  '>(tc_lib_dir_irt64)/libgio.a',
183                ],
184                'extra_deps_newlib32': [
185                  '>(tc_lib_dir_irt32)/libppapi_proxy_nacl.a',
186                  '>(tc_lib_dir_irt32)/libppapi_ipc_nacl.a',
187                  '>(tc_lib_dir_irt32)/libppapi_shared_nacl.a',
188                  '>(tc_lib_dir_irt32)/libgles2_implementation_nacl.a',
189                  '>(tc_lib_dir_irt32)/libcommand_buffer_client_nacl.a',
190                  '>(tc_lib_dir_irt32)/libcommand_buffer_common_nacl.a',
191                  '>(tc_lib_dir_irt32)/libgpu_ipc_nacl.a',
192                  '>(tc_lib_dir_irt32)/libtracing_nacl.a',
193                  '>(tc_lib_dir_irt32)/libgles2_cmd_helper_nacl.a',
194                  '>(tc_lib_dir_irt32)/libgles2_utils_nacl.a',
195                  '>(tc_lib_dir_irt32)/libipc_nacl.a',
196                  '>(tc_lib_dir_irt32)/libbase_nacl.a',
197                  '>(tc_lib_dir_irt32)/libirt_browser.a',
198                  '>(tc_lib_dir_irt32)/libpnacl_irt_shim_for_irt.a',
199                  '>(tc_lib_dir_irt32)/libshared_memory_support_nacl.a',
200                  '>(tc_lib_dir_irt32)/libsrpc.a',
201                  '>(tc_lib_dir_irt32)/libplatform.a',
202                  '>(tc_lib_dir_irt32)/libimc_syscalls.a',
203                  '>(tc_lib_dir_irt32)/libgio.a',
204                ],
205              }],
206              ['target_arch=="arm"', {
207                'extra_deps_arm': [
208                  '>(tc_lib_dir_irt_arm)/libppapi_proxy_nacl.a',
209                  '>(tc_lib_dir_irt_arm)/libppapi_ipc_nacl.a',
210                  '>(tc_lib_dir_irt_arm)/libppapi_shared_nacl.a',
211                  '>(tc_lib_dir_irt_arm)/libgles2_implementation_nacl.a',
212                  '>(tc_lib_dir_irt_arm)/libcommand_buffer_client_nacl.a',
213                  '>(tc_lib_dir_irt_arm)/libcommand_buffer_common_nacl.a',
214                  '>(tc_lib_dir_irt_arm)/libgpu_ipc_nacl.a',
215                  '>(tc_lib_dir_irt_arm)/libtracing_nacl.a',
216                  '>(tc_lib_dir_irt_arm)/libgles2_cmd_helper_nacl.a',
217                  '>(tc_lib_dir_irt_arm)/libgles2_utils_nacl.a',
218                  '>(tc_lib_dir_irt_arm)/libipc_nacl.a',
219                  '>(tc_lib_dir_irt_arm)/libbase_nacl.a',
220                  '>(tc_lib_dir_irt_arm)/libirt_browser.a',
221                  '>(tc_lib_dir_irt_arm)/libpnacl_irt_shim_for_irt.a',
222                  '>(tc_lib_dir_irt_arm)/libshared_memory_support_nacl.a',
223                  '>(tc_lib_dir_irt_arm)/libsrpc.a',
224                  '>(tc_lib_dir_irt_arm)/libplatform.a',
225                  '>(tc_lib_dir_irt_arm)/libimc_syscalls.a',
226                  '>(tc_lib_dir_irt_arm)/libgio.a',
227                ],
228              }],
229              ['target_arch=="mipsel"', {
230                'extra_deps_mips': [
231                  '>(tc_lib_dir_irt_mips)/libppapi_proxy_nacl.a',
232                  '>(tc_lib_dir_irt_mips)/libppapi_ipc_nacl.a',
233                  '>(tc_lib_dir_irt_mips)/libppapi_shared_nacl.a',
234                  '>(tc_lib_dir_irt_mips)/libgles2_implementation_nacl.a',
235                  '>(tc_lib_dir_irt_mips)/libcommand_buffer_client_nacl.a',
236                  '>(tc_lib_dir_irt_mips)/libcommand_buffer_common_nacl.a',
237                  '>(tc_lib_dir_irt_mips)/libgpu_ipc_nacl.a',
238                  '>(tc_lib_dir_irt_mips)/libtracing_nacl.a',
239                  '>(tc_lib_dir_irt_mips)/libgles2_cmd_helper_nacl.a',
240                  '>(tc_lib_dir_irt_mips)/libgles2_utils_nacl.a',
241                  '>(tc_lib_dir_irt_mips)/libipc_nacl.a',
242                  '>(tc_lib_dir_irt_mips)/libbase_nacl.a',
243                  '>(tc_lib_dir_irt_mips)/libirt_browser.a',
244                  '>(tc_lib_dir_irt_mips)/libpnacl_irt_shim_for_irt.a',
245                  '>(tc_lib_dir_irt_mips)/libshared_memory_support_nacl.a',
246                  '>(tc_lib_dir_irt_mips)/libsrpc.a',
247                  '>(tc_lib_dir_irt_mips)/libplatform.a',
248                  '>(tc_lib_dir_irt_mips)/libimc_syscalls.a',
249                  '>(tc_lib_dir_irt_mips)/libgio.a',
250                ],
251              }],
252            ],
253          },
254          'dependencies': [
255            'src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:shim_for_irt',
256            '../ppapi_proxy_nacl.gyp:ppapi_proxy_nacl',
257            '../ppapi_ipc_nacl.gyp:ppapi_ipc_nacl',
258            '../ppapi_shared_nacl.gyp:ppapi_shared_nacl',
259            '../../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
260            '../../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
261            '../../gpu/gpu_nacl.gyp:command_buffer_common_nacl',
262            '../../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
263            '../../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl',
264            '../../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
265            '../../components/tracing_nacl.gyp:tracing_nacl',
266            '../../ipc/ipc_nacl.gyp:ipc_nacl',
267            '../../base/base_nacl.gyp:base_nacl',
268            '../../media/media_nacl.gyp:shared_memory_support_nacl',
269            '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
270            '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
271            '../../native_client/src/shared/platform/platform.gyp:platform_lib',
272            '../../native_client/src/tools/tls_edit/tls_edit.gyp:tls_edit#host',
273            '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
274            '../../native_client/src/shared/gio/gio.gyp:gio_lib',
275          ],
276        },
277      ],
278    }],
279  ],
280}
281