| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| { |
| 'variables': { |
| 'chromium_code': 1, |
| }, |
| 'includes': [ |
| '../build/common_untrusted.gypi', |
| ], |
| 'conditions': [ |
| ['disable_nacl==0 and disable_nacl_untrusted==0', { |
| 'targets': [ |
| { |
| # nacl_helper_nonsfi is similar to nacl_helper (built in nacl.gyp) |
| # but for the NaCl plugin in Non-SFI mode. |
| # This binary is built using the PNaCl toolchain, but it is native |
| # linux binary and will run on Linux directly. |
| # Most library code can be shared with the one for untrusted build |
| # (i.e. the one for irt.nexe built by the NaCl/PNaCl toolchain), but |
| # as nacl_helper_nonsfi runs on Linux, there are some differences, |
| # such as MessageLoopForIO (which is based on libevent in Non-SFI |
| # mode) or ipc_channel implementation. |
| # Because of the toolchain, in both builds, OS_NACL macro (derived |
| # from __native_client__ macro) is defined. Code can test whether |
| # __native_client_nonsfi__ is #defined in order to determine |
| # whether it is being compiled for SFI mode or Non-SFI mode. |
| # |
| # Currently, nacl_helper_nonsfi is under development and the binary |
| # does nothing (i.e. it has only empty main(), now). |
| # TODO(crbug.com/358465): Implement it then switch nacl_helper in |
| # Non-SFI mode to nacl_helper_nonsfi. |
| 'target_name': 'nacl_helper_nonsfi', |
| 'type': 'none', |
| 'variables': { |
| 'nacl_untrusted_build': 1, |
| 'nexe_target': 'nacl_helper_nonsfi', |
| # Rename the output binary file to nacl_helper_nonsfi and put it |
| # directly under out/{Debug,Release}/. |
| 'out_newlib32_nonsfi': '<(PRODUCT_DIR)/nacl_helper_nonsfi', |
| |
| 'build_glibc': 0, |
| 'build_newlib': 0, |
| 'build_irt': 0, |
| 'build_pnacl_newlib': 0, |
| 'build_nonsfi_helper': 1, |
| |
| 'sources': [ |
| 'nacl/common/nacl_messages.cc', |
| 'nacl/common/nacl_types.cc', |
| 'nacl/common/nacl_types_param_traits.cc', |
| 'nacl/loader/nacl_helper_linux.cc', |
| 'nacl/loader/nacl_trusted_listener.cc', |
| 'nacl/loader/nonsfi/nonsfi_listener.cc', |
| 'nacl/loader/nonsfi/nonsfi_main.cc', |
| ], |
| |
| 'link_flags': [ |
| '-Wl,--start-group', |
| '-lbase_nacl_nonsfi', |
| '-lcommand_buffer_client_nacl', |
| '-lcommand_buffer_common_nacl', |
| '-lcontent_common_nacl_nonsfi', |
| '-lelf_loader', |
| '-levent_nacl_nonsfi', |
| '-lgio', |
| '-lgles2_cmd_helper_nacl', |
| '-lgles2_implementation_nacl', |
| '-lgles2_utils_nacl', |
| '-lgpu_ipc_nacl', |
| '-lipc_nacl_nonsfi', |
| '-llatency_info_nacl', |
| '-lplatform', |
| '-lppapi_ipc_nacl', |
| '-lppapi_proxy_nacl', |
| '-lppapi_shared_nacl', |
| '-lshared_memory_support_nacl', |
| '-ltracing_nacl', |
| '-Wl,--end-group', |
| ], |
| |
| 'conditions': [ |
| ['target_arch=="ia32" or target_arch=="x64"', { |
| 'extra_deps_newlib32_nonsfi': [ |
| '>(tc_lib_dir_nonsfi_helper32)/libbase_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_client_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libcommand_buffer_common_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libcontent_common_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libelf_loader.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libevent_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libgio.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libgles2_cmd_helper_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libgles2_implementation_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libgles2_utils_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libgpu_ipc_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libipc_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper32)/liblatency_info_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libplatform.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libppapi_ipc_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libppapi_proxy_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libppapi_shared_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libshared_memory_support_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper32)/libtracing_nacl.a', |
| ], |
| }], |
| ['target_arch=="arm"', { |
| 'extra_deps_newlib_arm_nonsfi': [ |
| '>(tc_lib_dir_nonsfi_helper_arm)/libbase_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_client_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libcommand_buffer_common_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libcontent_common_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libelf_loader.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libevent_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libgio.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_cmd_helper_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_implementation_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libgles2_utils_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libgpu_ipc_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libipc_nacl_nonsfi.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/liblatency_info_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libplatform.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_ipc_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_proxy_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libppapi_shared_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libshared_memory_support_nacl.a', |
| '>(tc_lib_dir_nonsfi_helper_arm)/libtracing_nacl.a', |
| ], |
| }], |
| ], |
| }, |
| 'dependencies': [ |
| '../base/base_nacl.gyp:base_nacl_nonsfi', |
| '../content/content_nacl_nonsfi.gyp:content_common_nacl_nonsfi', |
| '../ipc/ipc_nacl.gyp:ipc_nacl_nonsfi', |
| '../native_client/src/nonsfi/irt/irt.gyp:nacl_sys_private', |
| '../native_client/src/nonsfi/loader/loader.gyp:elf_loader', |
| '../native_client/src/untrusted/nacl/nacl.gyp:nacl_lib_newlib', |
| '../native_client/tools.gyp:prep_toolchain', |
| '../ppapi/ppapi_proxy_nacl.gyp:ppapi_proxy_nacl', |
| ], |
| }, |
| # TODO(hidehiko): Add Non-SFI version of nacl_loader_unittests. |
| ], |
| }], |
| ], |
| } |