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.
10 '../build/common_untrusted.gypi',
13 ['disable_nacl==0 and disable_nacl_untrusted==0', {
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.
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',
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',
46 'build_pnacl_newlib': 0,
47 'build_nonsfi_helper': 1,
50 'nacl/loader/nacl_helper_linux.cc',
51 'nacl/loader/nacl_helper_linux.h',
55 ['target_arch=="ia32" or target_arch=="x64"', {
56 'extra_deps_newlib32_nonsfi': [
57 '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a',
58 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_client_nacl.a',
59 '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_common_nacl.a',
60 '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a',
61 '>(tc_lib_dir_nonsfi_helper32)/libgles2_cmd_helper_nacl.a',
62 '>(tc_lib_dir_nonsfi_helper32)/libgles2_implementation_nacl.a',
63 '>(tc_lib_dir_nonsfi_helper32)/libgles2_utils_nacl.a',
64 '>(tc_lib_dir_nonsfi_helper32)/libgpu_ipc_nacl.a',
65 '>(tc_lib_dir_nonsfi_helper32)/libipc_nacl_nonsfi.a',
66 '>(tc_lib_dir_nonsfi_helper32)/libshared_memory_support_nacl.a',
72 '../base/base_nacl.gyp:base_nacl_nonsfi',
73 '../ipc/ipc_nacl.gyp:ipc_nacl_nonsfi',
74 '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private',
75 '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib',
76 '../native_client/tools.gyp:prep_toolchain',
78 # Temporarily depends on some libraries to make sure they can be
79 # built properly. These are depended on by PPAPI library.
80 # TODO(hidehiko): Remove them when PPAPI library is introduced.
81 '../gpu/command_buffer/command_buffer_nacl.gyp:gles2_utils_nacl',
82 '../gpu/gpu_nacl.gyp:command_buffer_client_nacl',
83 '../gpu/gpu_nacl.gyp:command_buffer_common_nacl',
84 '../gpu/gpu_nacl.gyp:gles2_cmd_helper_nacl',
85 '../gpu/gpu_nacl.gyp:gles2_implementation_nacl',
86 '../gpu/gpu_nacl.gyp:gpu_ipc_nacl',
87 '../media/media_nacl.gyp:shared_memory_support_nacl',
90 # TODO(hidehiko): Add Non-SFI version of nacl_loader_unittests.