Use Persistent::Reset.
[chromium-blink-merge.git] / ppapi / native_client / native_client.gyp
blobfdbb9366b2be1283a935f98025d39f53ed438312
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.
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': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/include/nacl',
25               'files': [
26                 'src/trusted/weak_ref/call_on_main_thread.h',
27                 'src/shared/ppapi_proxy/ppruntime.h',
28               ],
29             },
30             {
31               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/include/nacl',
32               'files': [
33                 'src/trusted/weak_ref/call_on_main_thread.h',
34                 'src/shared/ppapi_proxy/ppruntime.h',
35               ],
36             },
37             # Here we copy linker scripts out of the Native Client repository.
38             # These are source, not build artifacts.
39             {
40               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32',
41               'files': [
42                   'src/untrusted/irt_stub/libppapi.a',
43               ],
44             },
45             {
46               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64',
47               'files': [
48                   'src/untrusted/irt_stub/libppapi.a',
49               ],
50             },
51             {
52               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32',
53               'files': [
54                   'src/untrusted/irt_stub/libppapi.a',
55                   'src/untrusted/irt_stub/libppapi.so',
56               ],
57             },
58             {
59               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64',
60               'files': [
61                   'src/untrusted/irt_stub/libppapi.a',
62                   'src/untrusted/irt_stub/libppapi.so',
63               ],
64             },
65             {
66               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm',
67               'files': [
68                 'src/untrusted/irt_stub/libppapi.a',
69               ],
70             },
71             {
72               'destination': '<(SHARED_INTERMEDIATE_DIR)/tc_pnacl_newlib/lib',
73               'files': [
74                 'src/untrusted/irt_stub/libppapi.a',
75               ],
76             },
77           ],
78         },
79         {
80           'target_name': 'nacl_irt',
81           'type': 'none',
82           'variables': {
83             'nexe_target': 'nacl_irt',
84             # These out_* fields override the default filenames, which
85             # include a "_newlib" suffix.
86             'out_newlib64': '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
87             'out_newlib32': '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
88             'out_newlib_arm': '<(PRODUCT_DIR)/nacl_irt_arm.nexe',
89             'build_glibc': 0,
90             'build_newlib': 1,
91             'include_dirs': [
92               'lib/gl/include',
93               '..',
94             ],
95             'link_flags': [
96               '-Wl,--start-group',
97               '-lirt_browser',
98               '-lppapi_proxy_untrusted',
99               '-lppapi_ipc_untrusted',
100               '-lppapi_shared_untrusted',
101               '-lgles2_implementation_untrusted',
102               '-lgles2_cmd_helper_untrusted',
103               '-lgles2_utils_untrusted',
104               '-lcommand_buffer_client_untrusted',
105               '-lcommand_buffer_common_untrusted',
106               '-ltracing_untrusted',
107               '-lgpu_ipc_untrusted',
108               '-lipc_untrusted',
109               '-lbase_untrusted',
110               '-lshared_memory_support_untrusted',
111               '-lsrpc',
112               '-limc_syscalls',
113               '-lplatform',
114               '-lgio',
115               '-Wl,--end-group',
116               '-lm',
117               '-Wl,<(NACL_RODATA_FLAG)=<(NACL_IRT_DATA_START)',
118               '-Wl,-Ttext-segment=<(NACL_IRT_TEXT_START)',
119             ],
120             'conditions': [
121               # untrusted.gypi and build_nexe.py currently build
122               # both x86-32 and x86-64 whenever target_arch is some
123               # flavor of x86.  However, on non-windows platforms
124               # we only need one architecture.
125               ['OS!="win" and target_arch=="ia32"',
126                 {
127                   'enable_x86_64': 0
128                 }
129               ],
130               ['OS!="win" and target_arch=="x64"',
131                 {
132                   'enable_x86_32': 0
133                 }
134               ]
135             ],
136             'extra_args': [
137               '--strip-all',
138             ],
139             # TODO(bradchen): get rid of extra_deps64 and extra_deps32
140             # once native_client/build/untrusted.gypi no longer needs them.
141             'extra_deps64': [
142               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_proxy_untrusted.a',
143               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_ipc_untrusted.a',
144               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_shared_untrusted.a',
145               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_implementation_untrusted.a',
146               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libcommand_buffer_client_untrusted.a',
147               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libcommand_buffer_common_untrusted.a',
148               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgpu_ipc_untrusted.a',
149               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libtracing_untrusted.a',
150               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_cmd_helper_untrusted.a',
151               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_utils_untrusted.a',
152               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libipc_untrusted.a',
153               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libbase_untrusted.a',
154               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libirt_browser.a',
155               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libshared_memory_support_untrusted.a',
156               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libsrpc.a',
157               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libplatform.a',
158               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libimc_syscalls.a',
159               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgio.a',
160             ],
161             'extra_deps32': [
162               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_proxy_untrusted.a',
163               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_ipc_untrusted.a',
164               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_shared_untrusted.a',
165               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_implementation_untrusted.a',
166               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libcommand_buffer_client_untrusted.a',
167               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libcommand_buffer_common_untrusted.a',
168               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgpu_ipc_untrusted.a',
169               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libtracing_untrusted.a',
170               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_cmd_helper_untrusted.a',
171               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_utils_untrusted.a',
172               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libipc_untrusted.a',
173               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libbase_untrusted.a',
174               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libirt_browser.a',
175               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libshared_memory_support_untrusted.a',
176               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libsrpc.a',
177               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libplatform.a',
178               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libimc_syscalls.a',
179               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgio.a',
180             ],
181             'extra_deps_newlib64': [
182               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_proxy_untrusted.a',
183               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_ipc_untrusted.a',
184               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libppapi_shared_untrusted.a',
185               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_implementation_untrusted.a',
186               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libcommand_buffer_client_untrusted.a',
187               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libcommand_buffer_common_untrusted.a',
188               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgpu_ipc_untrusted.a',
189               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libtracing_untrusted.a',
190               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_cmd_helper_untrusted.a',
191               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgles2_utils_untrusted.a',
192               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libipc_untrusted.a',
193               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libbase_untrusted.a',
194               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libirt_browser.a',
195               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libshared_memory_support_untrusted.a',
196               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libsrpc.a',
197               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libplatform.a',
198               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libimc_syscalls.a',
199               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib64/libgio.a',
200             ],
201             'extra_deps_newlib32': [
202               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_proxy_untrusted.a',
203               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_ipc_untrusted.a',
204               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libppapi_shared_untrusted.a',
205               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_implementation_untrusted.a',
206               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libcommand_buffer_client_untrusted.a',
207               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libcommand_buffer_common_untrusted.a',
208               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgpu_ipc_untrusted.a',
209               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libtracing_untrusted.a',
210               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_cmd_helper_untrusted.a',
211               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgles2_utils_untrusted.a',
212               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libipc_untrusted.a',
213               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libbase_untrusted.a',
214               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libirt_browser.a',
215               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libshared_memory_support_untrusted.a',
216               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libsrpc.a',
217               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libplatform.a',
218               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libimc_syscalls.a',
219               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/lib32/libgio.a',
220             ],
221             'extra_deps_glibc64': [
222               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libppapi_proxy_untrusted.a',
223               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libppapi_ipc_untrusted.a',
224               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libppapi_shared_untrusted.a',
225               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgles2_implementation_untrusted.a',
226               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libcommand_buffer_client_untrusted.a',
227               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libcommand_buffer_common_untrusted.a',
228               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgpu_ipc_untrusted.a',
229               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libtracing_untrusted.a',
230               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgles2_cmd_helper_untrusted.a',
231               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgles2_utils_untrusted.a',
232               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libipc_untrusted.a',
233               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libbase_untrusted.a',
234               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libirt_browser.a',
235               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libshared_memory_support_untrusted.a',
236               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libsrpc.a',
237               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libplatform.a',
238               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libimc_syscalls.a',
239               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib64/libgio.a',
240             ],
241             'extra_deps_glibc32': [
242               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libppapi_proxy_untrusted.a',
243               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libppapi_ipc_untrusted.a',
244               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libppapi_shared_untrusted.a',
245               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgles2_implementation_untrusted.a',
246               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libcommand_buffer_client_untrusted.a',
247               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libcommand_buffer_common_untrusted.a',
248               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgpu_ipc_untrusted.a',
249               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libtracing_untrusted.a',
250               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgles2_cmd_helper_untrusted.a',
251               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgles2_utils_untrusted.a',
252               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libipc_untrusted.a',
253               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libbase_untrusted.a',
254               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libirt_browser.a',
255               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libshared_memory_support_untrusted.a',
256               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libsrpc.a',
257               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libplatform.a',
258               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libimc_syscalls.a',
259               '<(SHARED_INTERMEDIATE_DIR)/tc_glibc/lib32/libgio.a',
260             ],
261             'extra_deps_arm': [
262               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libppapi_proxy_untrusted.a',
263               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libppapi_ipc_untrusted.a',
264               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libppapi_shared_untrusted.a',
265               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgles2_implementation_untrusted.a',
266               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libcommand_buffer_client_untrusted.a',
267               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libcommand_buffer_common_untrusted.a',
268               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgpu_ipc_untrusted.a',
269               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libtracing_untrusted.a',
270               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgles2_cmd_helper_untrusted.a',
271               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgles2_utils_untrusted.a',
272               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libipc_untrusted.a',
273               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libbase_untrusted.a',
274               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libirt_browser.a',
275               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libshared_memory_support_untrusted.a',
276               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libsrpc.a',
277               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libplatform.a',
278               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libimc_syscalls.a',
279               '<(SHARED_INTERMEDIATE_DIR)/tc_newlib/libarm/libgio.a',
280             ],
281           },
282           'dependencies': [
283             '../ppapi_proxy_untrusted.gyp:ppapi_proxy_untrusted',
284             '../ppapi_ipc_untrusted.gyp:ppapi_ipc_untrusted',
285             '../ppapi_shared_untrusted.gyp:ppapi_shared_untrusted',
286             '../../gpu/command_buffer/command_buffer_untrusted.gyp:gles2_utils_untrusted',
287             '../../gpu/gpu_untrusted.gyp:command_buffer_client_untrusted',
288             '../../gpu/gpu_untrusted.gyp:command_buffer_common_untrusted',
289             '../../gpu/gpu_untrusted.gyp:gles2_implementation_untrusted',
290             '../../gpu/gpu_untrusted.gyp:gles2_cmd_helper_untrusted',
291             '../../gpu/gpu_untrusted.gyp:gpu_ipc_untrusted',
292             '../../components/tracing_untrusted.gyp:tracing_untrusted',
293             '../../ipc/ipc_untrusted.gyp:ipc_untrusted',
294             '../../base/base_untrusted.gyp:base_untrusted',
295             '../../media/media_untrusted.gyp:shared_memory_support_untrusted',
296             '../../native_client/src/untrusted/irt/irt.gyp:irt_browser_lib',
297             '../../native_client/src/shared/srpc/srpc.gyp:srpc_lib',
298             '../../native_client/src/shared/platform/platform.gyp:platform_lib',
299             '../../native_client/src/untrusted/nacl/nacl.gyp:imc_syscalls_lib',
300             '../../native_client/src/shared/gio/gio.gyp:gio_lib',
301           ],
302         },
303       ],
304     }],
305   ],