OLD | NEW |
| (Empty) |
1 # Copyright 2014 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, | |
8 }, | |
9 'includes': [ | |
10 '../build/common_untrusted.gypi', | |
11 ], | |
12 'conditions': [ | |
13 ['disable_nacl==0 and disable_nacl_untrusted==0', { | |
14 'targets': [ | |
15 { | |
16 # nacl_helper_nonsfi is similar to nacl_helper (built in nacl.gyp) | |
17 # but for the NaCl plugin in Non-SFI mode. | |
18 # This binary is built using the PNaCl toolchain, but it is native | |
19 # linux binary and will run on Linux directly. | |
20 # Most library code can be shared with the one for untrusted build | |
21 # (i.e. the one for irt.nexe built by the NaCl/PNaCl toolchain), but | |
22 # as nacl_helper_nonsfi runs on Linux, there are some differences, | |
23 # such as MessageLoopForIO (which is based on libevent in Non-SFI | |
24 # mode) or ipc_channel implementation. | |
25 # Because of the toolchain, in both builds, OS_NACL macro (derived | |
26 # from __native_client__ macro) is defined. Code can test whether | |
27 # __native_client_nonsfi__ is #defined in order to determine | |
28 # whether it is being compiled for SFI mode or Non-SFI mode. | |
29 # | |
30 # Currently, nacl_helper_nonsfi is under development and the binary | |
31 # does nothing (i.e. it has only empty main(), now). | |
32 # TODO(crbug.com/358465): Implement it then switch nacl_helper in | |
33 # Non-SFI mode to nacl_helper_nonsfi. | |
34 'target_name': 'nacl_helper_nonsfi', | |
35 'type': 'none', | |
36 'variables': { | |
37 'nacl_untrusted_build': 1, | |
38 'nexe_target': 'nacl_helper_nonsfi', | |
39 # Rename the output binary file to nacl_helper_nonsfi and put it | |
40 # directly under out/{Debug,Release}/. | |
41 'out_newlib32_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi', | |
42 'out_newlib_arm_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi', | |
43 | |
44 'build_glibc': 0, | |
45 'build_newlib': 0, | |
46 'build_irt': 0, | |
47 'build_pnacl_newlib': 0, | |
48 'build_nonsfi_helper': 1, | |
49 | |
50 'sources': [ | |
51 'nacl/common/nacl_messages.cc', | |
52 'nacl/common/nacl_switches.cc', | |
53 'nacl/common/nacl_types.cc', | |
54 'nacl/common/nacl_types_param_traits.cc', | |
55 'nacl/loader/nacl_helper_linux.cc', | |
56 'nacl/loader/nacl_trusted_listener.cc', | |
57 'nacl/loader/nonsfi/nonsfi_listener.cc', | |
58 'nacl/loader/nonsfi/nonsfi_main.cc', | |
59 ], | |
60 | |
61 'link_flags': [ | |
62 '-lbase_nacl_nonsfi', | |
63 '-lcommand_buffer_client_nacl', | |
64 '-lcommand_buffer_common_nacl', | |
65 '-lcontent_common_nacl_nonsfi', | |
66 '-lelf_loader', | |
67 '-levent_nacl_nonsfi', | |
68 '-lgfx_geometry_nacl', | |
69 '-lgfx_ipc_geometry_nacl', | |
70 '-lgio', | |
71 '-lgles2_cmd_helper_nacl', | |
72 '-lgles2_implementation_nacl', | |
73 '-lgles2_utils_nacl', | |
74 '-lgpu_ipc_nacl', | |
75 '-lipc_nacl_nonsfi', | |
76 '-lmojo_cpp_bindings_nacl', | |
77 '-lmojo_cpp_system_nacl', | |
78 '-lmojo_public_system_nacl', | |
79 '-lmojo_system_impl_nacl_nonsfi', | |
80 '-lnacl_helper_nonsfi_sandbox', | |
81 '-lplatform', | |
82 '-lppapi_ipc_nacl', | |
83 '-lppapi_proxy_nacl', | |
84 '-lppapi_shared_nacl', | |
85 '-lsandbox_linux_nacl_nonsfi', | |
86 '-lshared_memory_support_nacl', | |
87 '-ltracing_nacl', | |
88 ], | |
89 | |
90 'conditions': [ | |
91 ['target_arch=="ia32" or target_arch=="x64"', { | |
92 'extra_deps_newlib32_nonsfi': [ | |
93 '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a', | |
94 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_client_nacl.a
', | |
95 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_common_nacl.a
', | |
96 '>(tc_lib_dir_nonsfi_helper32)/libcontent_common_nacl_nonsfi.a
', | |
97 '>(tc_lib_dir_nonsfi_helper32)/libelf_loader.a', | |
98 '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a', | |
99 '>(tc_lib_dir_nonsfi_helper32)/libgfx_geometry_nacl.a', | |
100 '>(tc_lib_dir_nonsfi_helper32)/libgfx_ipc_geometry_nacl.a', | |
101 '>(tc_lib_dir_nonsfi_helper32)/libgio.a', | |
102 '>(tc_lib_dir_nonsfi_helper32)/libgles2_cmd_helper_nacl.a', | |
103 '>(tc_lib_dir_nonsfi_helper32)/libgles2_implementation_nacl.a'
, | |
104 '>(tc_lib_dir_nonsfi_helper32)/libgles2_utils_nacl.a', | |
105 '>(tc_lib_dir_nonsfi_helper32)/libgpu_ipc_nacl.a', | |
106 '>(tc_lib_dir_nonsfi_helper32)/libipc_nacl_nonsfi.a', | |
107 '>(tc_lib_dir_nonsfi_helper32)/libmojo_cpp_bindings_nacl.a', | |
108 '>(tc_lib_dir_nonsfi_helper32)/libmojo_cpp_system_nacl.a', | |
109 '>(tc_lib_dir_nonsfi_helper32)/libmojo_public_system_nacl.a', | |
110 '>(tc_lib_dir_nonsfi_helper32)/libmojo_system_impl_nacl_nonsfi
.a', | |
111 '>(tc_lib_dir_nonsfi_helper32)/libnacl_helper_nonsfi_sandbox.a
', | |
112 '>(tc_lib_dir_nonsfi_helper32)/libplatform.a', | |
113 '>(tc_lib_dir_nonsfi_helper32)/libppapi_ipc_nacl.a', | |
114 '>(tc_lib_dir_nonsfi_helper32)/libppapi_proxy_nacl.a', | |
115 '>(tc_lib_dir_nonsfi_helper32)/libppapi_shared_nacl.a', | |
116 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_nacl_nonsfi.a'
, | |
117 '>(tc_lib_dir_nonsfi_helper32)/libshared_memory_support_nacl.a
', | |
118 '>(tc_lib_dir_nonsfi_helper32)/libtracing_nacl.a', | |
119 ], | |
120 }], | |
121 ['target_arch=="arm"', { | |
122 'extra_deps_newlib_arm_nonsfi': [ | |
123 '>(tc_lib_dir_nonsfi_helper_arm)/libbase_nacl_nonsfi.a', | |
124 '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_client_nacl
.a', | |
125 '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_common_nacl
.a', | |
126 '>(tc_lib_dir_nonsfi_helper_arm)/libcontent_common_nacl_nonsfi
.a', | |
127 '>(tc_lib_dir_nonsfi_helper_arm)/libelf_loader.a', | |
128 '>(tc_lib_dir_nonsfi_helper_arm)/libevent_nacl_nonsfi.a', | |
129 '>(tc_lib_dir_nonsfi_helper_arm)/libgfx_geometry_nacl.a', | |
130 '>(tc_lib_dir_nonsfi_helper_arm)/libgfx_ipc_geometry_nacl.a', | |
131 '>(tc_lib_dir_nonsfi_helper_arm)/libgio.a', | |
132 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_cmd_helper_nacl.a', | |
133 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_implementation_nacl.
a', | |
134 '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_utils_nacl.a', | |
135 '>(tc_lib_dir_nonsfi_helper_arm)/libgpu_ipc_nacl.a', | |
136 '>(tc_lib_dir_nonsfi_helper_arm)/libipc_nacl_nonsfi.a', | |
137 '>(tc_lib_dir_nonsfi_helper_arm)/libmojo_cpp_bindings_nacl.a', | |
138 '>(tc_lib_dir_nonsfi_helper_arm)/libmojo_cpp_system_nacl.a', | |
139 '>(tc_lib_dir_nonsfi_helper_arm)/libmojo_public_system_nacl.a'
, | |
140 '>(tc_lib_dir_nonsfi_helper_arm)/libmojo_system_impl_nacl_nons
fi.a', | |
141 '>(tc_lib_dir_nonsfi_helper_arm)/libnacl_helper_nonsfi_sandbox
.a', | |
142 '>(tc_lib_dir_nonsfi_helper_arm)/libplatform.a', | |
143 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_ipc_nacl.a', | |
144 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_proxy_nacl.a', | |
145 '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_shared_nacl.a', | |
146 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_nacl_nonsfi.
a', | |
147 '>(tc_lib_dir_nonsfi_helper_arm)/libshared_memory_support_nacl
.a', | |
148 '>(tc_lib_dir_nonsfi_helper_arm)/libtracing_nacl.a', | |
149 ], | |
150 }], | |
151 ], | |
152 }, | |
153 'dependencies': [ | |
154 '../base/base_nacl.gyp:base_nacl_nonsfi', | |
155 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi', | |
156 '../ipc/ipc_nacl.gyp:ipc_nacl_nonsfi', | |
157 '../mojo/mojo_edk_nacl.gyp:mojo_system_impl_nacl_nonsfi', | |
158 '../mojo/mojo_public_nacl.gyp:mojo_cpp_bindings_nacl', | |
159 '../mojo/mojo_public_nacl.gyp:mojo_cpp_system_nacl', | |
160 '../mojo/mojo_public_nacl.gyp:mojo_public_system_nacl', | |
161 '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private', | |
162 '../native_client/src/nonsfi/loader/loader.gyp:elf_loader', | |
163 '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib', | |
164 '../ppapi/ppapi_proxy_nacl.gyp:ppapi_proxy_nacl', | |
165 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_n
onsfi', | |
166 'nacl_helper_nonsfi_sandbox', | |
167 ], | |
168 }, | |
169 | |
170 { | |
171 'target_name': 'nacl_helper_nonsfi_sandbox', | |
172 'type': 'none', | |
173 'variables': { | |
174 'nacl_untrusted_build': 1, | |
175 'nlib_target': 'libnacl_helper_nonsfi_sandbox.a', | |
176 | |
177 'build_glibc': 0, | |
178 'build_newlib': 0, | |
179 'build_irt': 0, | |
180 'build_pnacl_newlib': 0, | |
181 'build_nonsfi_helper': 1, | |
182 | |
183 'sources': [ | |
184 'nacl/loader/nonsfi/nonsfi_sandbox.cc', | |
185 'nacl/loader/sandbox_linux/nacl_sandbox_linux.cc', | |
186 ], | |
187 }, | |
188 'dependencies': [ | |
189 '../base/base_nacl.gyp:base_nacl_nonsfi', | |
190 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi', | |
191 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_n
onsfi', | |
192 ], | |
193 }, | |
194 ], | |
195 }], | |
196 | |
197 ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test=
=1', { | |
198 'targets': [ | |
199 { | |
200 'target_name': 'nacl_helper_nonsfi_unittests_main', | |
201 'type': 'none', | |
202 'variables': { | |
203 'nacl_untrusted_build': 1, | |
204 'nexe_target': 'nacl_helper_nonsfi_unittests_main', | |
205 # Rename the output binary file to | |
206 # nacl_helper_nonsfi_unittests_main and put it directly under | |
207 # out/{Debug,Release}/, so that this is in the standard location, | |
208 # for running on the buildbots. | |
209 'out_newlib32_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi_unittests_
main', | |
210 'out_newlib_arm_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi_unittest
s_main', | |
211 | |
212 'build_glibc': 0, | |
213 'build_newlib': 0, | |
214 'build_irt': 0, | |
215 'build_pnacl_newlib': 0, | |
216 'build_nonsfi_helper': 1, | |
217 | |
218 'sources': [ | |
219 'nacl/loader/nonsfi/nonsfi_sandbox_sigsys_unittest.cc', | |
220 'nacl/loader/nonsfi/nonsfi_sandbox_unittest.cc', | |
221 'nacl/loader/nonsfi/run_all_unittests.cc', | |
222 ], | |
223 | |
224 'link_flags': [ | |
225 '-lbase_nacl_nonsfi', | |
226 '-lcontent_common_nacl_nonsfi', | |
227 '-levent_nacl_nonsfi', | |
228 '-lgio', | |
229 '-lgtest_nacl', | |
230 '-lnacl_helper_nonsfi_sandbox', | |
231 '-lplatform', | |
232 '-lsandbox_linux_nacl_nonsfi', | |
233 '-lsandbox_linux_test_utils_nacl_nonsfi', | |
234 '-ltest_support_base_nacl_nonsfi', | |
235 ], | |
236 | |
237 'conditions': [ | |
238 ['target_arch=="ia32" or target_arch=="x64"', { | |
239 'extra_deps_newlib32_nonsfi': [ | |
240 '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a', | |
241 '>(tc_lib_dir_nonsfi_helper32)/libcontent_common_nacl_nonsfi.a
', | |
242 '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a', | |
243 '>(tc_lib_dir_nonsfi_helper32)/libgio.a', | |
244 '>(tc_lib_dir_nonsfi_helper32)/libgtest_nacl.a', | |
245 '>(tc_lib_dir_nonsfi_helper32)/libnacl_helper_nonsfi_sandbox.a
', | |
246 '>(tc_lib_dir_nonsfi_helper32)/libplatform.a', | |
247 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_nacl_nonsfi.a'
, | |
248 '>(tc_lib_dir_nonsfi_helper32)/libsandbox_linux_test_utils_nac
l_nonsfi.a', | |
249 '>(tc_lib_dir_nonsfi_helper32)/libtest_support_base_nacl_nonsf
i.a', | |
250 ], | |
251 }], | |
252 ['target_arch=="arm"', { | |
253 'extra_deps_newlib_arm_nonsfi': [ | |
254 '>(tc_lib_dir_nonsfi_helper_arm)/libbase_nacl_nonsfi.a', | |
255 '>(tc_lib_dir_nonsfi_helper_arm)/libcontent_common_nacl_nonsfi
.a', | |
256 '>(tc_lib_dir_nonsfi_helper_arm)/libevent_nacl_nonsfi.a', | |
257 '>(tc_lib_dir_nonsfi_helper_arm)/libgio.a', | |
258 '>(tc_lib_dir_nonsfi_helper_arm)/libgtest_nacl.a', | |
259 '>(tc_lib_dir_nonsfi_helper_arm)/libnacl_helper_nonsfi_sandbox
.a', | |
260 '>(tc_lib_dir_nonsfi_helper_arm)/libplatform.a', | |
261 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_nacl_nonsfi.
a', | |
262 '>(tc_lib_dir_nonsfi_helper_arm)/libsandbox_linux_test_utils_n
acl_nonsfi.a', | |
263 '>(tc_lib_dir_nonsfi_helper_arm)/libtest_support_base_nacl_non
sfi.a', | |
264 ], | |
265 }], | |
266 ], | |
267 }, | |
268 | |
269 'dependencies': [ | |
270 '../base/base_nacl.gyp:base_nacl_nonsfi', | |
271 '../base/base_nacl.gyp:test_support_base_nacl_nonsfi', | |
272 '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi', | |
273 '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private', | |
274 '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib', | |
275 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_nacl_n
onsfi', | |
276 '../sandbox/linux/sandbox_linux_nacl_nonsfi.gyp:sandbox_linux_test_u
tils_nacl_nonsfi', | |
277 '../testing/gtest_nacl.gyp:gtest_nacl', | |
278 'nacl_helper_nonsfi_sandbox', | |
279 ], | |
280 }, | |
281 ], | |
282 }], | |
283 | |
284 ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test=
=1 and test_isolation_mode!="noop"', { | |
285 'targets': [ | |
286 { | |
287 'target_name': 'nacl_helper_nonsfi_unittests_run', | |
288 'type': 'none', | |
289 'dependencies': [ | |
290 'nacl.gyp:nacl_helper_nonsfi_unittests', | |
291 'nacl_helper_nonsfi_unittests_main', | |
292 ], | |
293 'includes': [ | |
294 '../build/isolate.gypi', | |
295 ], | |
296 'sources': [ | |
297 'nacl_helper_nonsfi_unittests.isolate', | |
298 ], | |
299 }, | |
300 ], | |
301 }], | |
302 ], | |
303 } | |
OLD | NEW |