| # Copyright (c) 2015 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. |
| |
| import("//build/config/features.gni") |
| import("//build/config/nacl/config.gni") |
| import("//build/config/ui.gni") |
| import("//testing/test.gni") |
| |
| if (enable_nacl) { |
| source_set("nacl") { |
| sources = [ |
| "loader/nacl_ipc_adapter.cc", |
| "loader/nacl_ipc_adapter.h", |
| "loader/nacl_listener.cc", |
| "loader/nacl_listener.h", |
| "loader/nacl_main.cc", |
| "loader/nacl_main_platform_delegate.h", |
| "loader/nacl_main_platform_delegate_linux.cc", |
| "loader/nacl_main_platform_delegate_mac.mm", |
| "loader/nacl_main_platform_delegate_win.cc", |
| "loader/nacl_trusted_listener.cc", |
| "loader/nacl_trusted_listener.h", |
| "loader/nacl_validation_db.h", |
| "loader/nacl_validation_query.cc", |
| "loader/nacl_validation_query.h", |
| ] |
| |
| deps = [ |
| ":nacl_common", |
| ":nacl_switches", |
| "//base", |
| "//base:base_static", |
| "//content/public/common", |
| "//crypto", |
| "//ipc", |
| "//native_client/src/trusted/service_runtime:sel_main_chrome", |
| "//ppapi/c", |
| "//ppapi/proxy:ipc", |
| "//ppapi/shared_impl", |
| "//sandbox", |
| "//third_party/mojo/src/mojo/edk/system", |
| ] |
| |
| if (enable_nacl_untrusted) { |
| data_deps = [ |
| "//ppapi/native_client:irt", |
| ] |
| } |
| if (enable_pnacl) { |
| data_deps += |
| [ "//ppapi/native_client/src/untrusted/pnacl_support_extension" ] |
| } |
| } |
| |
| source_set("nacl_browser") { |
| sources = [ |
| "browser/bad_message.cc", |
| "browser/bad_message.h", |
| "browser/nacl_broker_host_win.cc", |
| "browser/nacl_broker_host_win.h", |
| "browser/nacl_broker_service_win.cc", |
| "browser/nacl_broker_service_win.h", |
| "browser/nacl_browser.cc", |
| "browser/nacl_browser.h", |
| "browser/nacl_file_host.cc", |
| "browser/nacl_file_host.h", |
| "browser/nacl_host_message_filter.cc", |
| "browser/nacl_host_message_filter.h", |
| "browser/nacl_process_host.cc", |
| "browser/nacl_process_host.h", |
| "browser/nacl_validation_cache.cc", |
| "browser/nacl_validation_cache.h", |
| "browser/pnacl_host.cc", |
| "browser/pnacl_host.h", |
| "browser/pnacl_translation_cache.cc", |
| "browser/pnacl_translation_cache.h", |
| "common/nacl_debug_exception_handler_win.cc", |
| "common/nacl_debug_exception_handler_win.h", |
| ] |
| |
| deps = [ |
| ":nacl_common", |
| ":nacl_switches", |
| "//base", |
| "//base/third_party/dynamic_annotations", |
| "//components/url_formatter", |
| "//content/public/browser", |
| "//content/public/common", |
| "//ipc", |
| "//native_client/src/trusted/service_runtime:sel_main_chrome", |
| "//net", |
| "//ppapi/host", |
| "//ppapi/proxy:ipc", |
| "//ppapi/shared_impl", |
| ] |
| |
| data_deps = [] |
| |
| if (is_linux) { |
| sources += [ |
| "zygote/nacl_fork_delegate_linux.cc", |
| "zygote/nacl_fork_delegate_linux.h", |
| ] |
| |
| deps += [ |
| ":nacl_helper_integration", |
| "//sandbox/linux:sandbox_services", |
| "//sandbox/linux:suid_sandbox_client", |
| ] |
| |
| data_deps += [ ":helper_nonsfi" ] |
| } |
| } |
| |
| source_set("nacl_renderer") { |
| sources = [ |
| "renderer/file_downloader.cc", |
| "renderer/file_downloader.h", |
| "renderer/histogram.cc", |
| "renderer/histogram.h", |
| "renderer/json_manifest.cc", |
| "renderer/json_manifest.h", |
| "renderer/manifest_downloader.cc", |
| "renderer/manifest_downloader.h", |
| "renderer/manifest_service_channel.cc", |
| "renderer/manifest_service_channel.h", |
| "renderer/nacl_helper.cc", |
| "renderer/nacl_helper.h", |
| "renderer/nexe_load_manager.cc", |
| "renderer/nexe_load_manager.h", |
| "renderer/platform_info.cc", |
| "renderer/platform_info.h", |
| "renderer/pnacl_translation_resource_host.cc", |
| "renderer/pnacl_translation_resource_host.h", |
| "renderer/ppb_nacl_private_impl.cc", |
| "renderer/ppb_nacl_private_impl.h", |
| "renderer/progress_event.cc", |
| "renderer/progress_event.h", |
| "renderer/trusted_plugin_channel.cc", |
| "renderer/trusted_plugin_channel.h", |
| ] |
| |
| deps = [ |
| ":nacl_common", |
| ":nacl_switches", |
| "renderer/plugin:nacl_trusted_plugin", |
| "//base", |
| "//content/public/common", |
| "//content/public/renderer", |
| "//ipc", |
| "//net", |
| "//ppapi/c", |
| "//ppapi/proxy:ipc", |
| "//ppapi/shared_impl", |
| "//third_party/WebKit/public:blink", |
| ] |
| } |
| |
| # TODO(GYP): Delete this after we've converted everything to GN. |
| # The _run targets exist only for compatibility w/ GYP. |
| group("nacl_loader_unittests_run") { |
| testonly = true |
| deps = [ |
| ":nacl_loader_unittests", |
| ] |
| } |
| |
| test("nacl_loader_unittests") { |
| sources = [ |
| "loader/nacl_ipc_adapter_unittest.cc", |
| "loader/nacl_validation_query_unittest.cc", |
| "loader/run_all_unittests.cc", |
| ] |
| |
| deps = [ |
| ":nacl", |
| "//base/test:test_support", |
| "//ipc:test_support", |
| "//ppapi/c", |
| "//testing/gtest", |
| ] |
| } |
| |
| if (is_linux) { |
| executable("nacl_helper") { |
| sources = [ |
| "loader/nacl_helper_linux.cc", |
| "loader/nacl_helper_linux.h", |
| ] |
| |
| deps = [ |
| ":nacl", |
| ":nacl_linux", |
| ":nacl_switches", |
| "//base", |
| "//build/config/sanitizers:deps", |
| "//content/public/common", |
| "//crypto", |
| "//ipc", |
| "//sandbox/linux:sandbox_services", |
| ] |
| |
| cflags = [ "-fPIE" ] |
| |
| ldflags = [ "-pie" ] |
| |
| data_deps = [ |
| "//native_client/src/trusted/service_runtime/linux:bootstrap", |
| ] |
| } |
| |
| # For setting up nacl_helper. |
| source_set("nacl_helper_integration") { |
| public = [ |
| "loader/nacl_helper_linux.h", |
| ] |
| data_deps = [ |
| ":nacl_helper", |
| ] |
| } |
| |
| source_set("nacl_linux") { |
| sources = [ |
| "loader/sandbox_linux/nacl_bpf_sandbox_linux.cc", |
| "loader/sandbox_linux/nacl_sandbox_linux.cc", |
| ] |
| |
| defines = [ "IN_NACL_HELPER=1" ] |
| |
| deps = [ |
| ":nacl", |
| ":nacl_common", |
| ":nacl_switches", |
| "//base", |
| "//content/public/common", |
| "//crypto", |
| "//ipc", |
| "//sandbox", |
| "//sandbox/linux:sandbox_services_headers", |
| ] |
| |
| if (use_glib) { |
| configs += [ "//build/config/linux:glib" ] |
| } |
| |
| if (use_seccomp_bpf) { |
| defines += [ "USE_SECCOMP_BPF" ] |
| } |
| } |
| } |
| |
| if (is_nacl_nonsfi) { |
| executable("nacl_helper_nonsfi_nexe") { |
| output_name = "nacl_helper_nonsfi" |
| set_sources_assignment_filter([]) |
| sources = [ |
| "common/nacl_messages.cc", |
| "common/nacl_messages.h", |
| "common/nacl_types.cc", |
| "common/nacl_types.h", |
| "common/nacl_types_param_traits.cc", |
| "common/nacl_types_param_traits.h", |
| "loader/nacl_helper_linux.cc", |
| "loader/nacl_helper_linux.h", |
| "loader/nacl_trusted_listener.cc", |
| "loader/nacl_trusted_listener.h", |
| "loader/nonsfi/nonsfi_listener.cc", |
| "loader/nonsfi/nonsfi_listener.h", |
| "loader/nonsfi/nonsfi_main.cc", |
| "loader/nonsfi/nonsfi_main.h", |
| ] |
| deps = [ |
| ":nacl_helper_nonsfi_sandbox", |
| ":nacl_switches", |
| "//base", |
| "//components/tracing", |
| "//content", |
| "//ipc", |
| "//native_client/src/nonsfi/irt:nacl_sys_private", |
| "//native_client/src/nonsfi/loader:elf_loader", |
| "//native_client/src/untrusted/nacl:nacl", |
| "//ppapi/proxy", |
| "//sandbox/linux:sandbox", |
| ] |
| } |
| |
| source_set("nacl_helper_nonsfi_sandbox") { |
| set_sources_assignment_filter([]) |
| sources = [ |
| "loader/nonsfi/nonsfi_sandbox.cc", |
| "loader/nonsfi/nonsfi_sandbox.h", |
| "loader/sandbox_linux/nacl_sandbox_linux.cc", |
| "loader/sandbox_linux/nacl_sandbox_linux.h", |
| ] |
| deps = [ |
| ":nacl_switches", |
| "//base", |
| "//content", |
| "//sandbox/linux:sandbox", |
| "//sandbox/linux:sandbox_services_headers", |
| ] |
| } |
| |
| copy("nacl_helper_nonsfi_copy") { |
| sources = [ |
| "${root_out_dir}/nacl_helper_nonsfi", |
| ] |
| outputs = [ |
| "${root_build_dir}/{{source_file_part}}", |
| ] |
| deps = [ |
| ":nacl_helper_nonsfi_nexe", |
| ] |
| } |
| } |
| |
| group("helper_nonsfi") { |
| deps = [ |
| ":nacl_helper_nonsfi_copy(//build/toolchain/nacl:newlib_pnacl_nonsfi)", |
| ] |
| } |
| } |
| |
| # TODO(brettw) move to //components/nacl/common:switches |
| source_set("nacl_switches") { |
| sources = [ |
| "common/nacl_switches.cc", |
| "common/nacl_switches.h", |
| ] |
| } |
| |
| # TODO(brettw) move to //components/nacl/common |
| source_set("nacl_common") { |
| sources = [ |
| "common/nacl_cmd_line.cc", |
| "common/nacl_cmd_line.h", |
| "common/nacl_constants.cc", |
| "common/nacl_constants.h", |
| "common/nacl_host_messages.cc", |
| "common/nacl_host_messages.h", |
| "common/nacl_messages.cc", |
| "common/nacl_messages.h", |
| "common/nacl_nonsfi_util.cc", |
| "common/nacl_nonsfi_util.h", |
| "common/nacl_process_type.h", |
| "common/nacl_renderer_messages.cc", |
| "common/nacl_renderer_messages.h", |
| "common/nacl_sandbox_type.h", |
| "common/nacl_types.cc", |
| "common/nacl_types.h", |
| "common/nacl_types_param_traits.cc", |
| "common/nacl_types_param_traits.h", |
| "common/pnacl_types.cc", |
| "common/pnacl_types.h", |
| ] |
| |
| deps = [ |
| ":nacl_switches", |
| "//base", |
| "//content/public/common", |
| "//ipc", |
| "//url", |
| ] |
| |
| if (is_linux) { |
| sources += [ |
| "common/nacl_paths.cc", |
| "common/nacl_paths.h", |
| ] |
| |
| defines = [ "__STDC_LIMIT_MACROS=1" ] |
| } |
| } |