mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
342 lines
7.7 KiB
Plaintext
342 lines
7.7 KiB
Plaintext
|
# Copyright (c) 2012 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/buildflag_header.gni")
|
||
|
import("//build/config/nacl/config.gni")
|
||
|
import("//ipc/features.gni")
|
||
|
import("//mojo/public/tools/bindings/mojom.gni")
|
||
|
import("//testing/test.gni")
|
||
|
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
|
||
|
import("//third_party/protobuf/proto_library.gni")
|
||
|
|
||
|
buildflag_header("ipc_buildflags") {
|
||
|
header = "ipc_buildflags.h"
|
||
|
|
||
|
flags = [ "IPC_MESSAGE_LOG_ENABLED=$enable_ipc_logging" ]
|
||
|
}
|
||
|
|
||
|
component("ipc") {
|
||
|
sources = [
|
||
|
"ipc_channel.cc",
|
||
|
"ipc_channel.h",
|
||
|
"ipc_channel_common.cc",
|
||
|
"ipc_channel_factory.cc",
|
||
|
"ipc_channel_factory.h",
|
||
|
"ipc_channel_handle.h",
|
||
|
"ipc_channel_mojo.cc",
|
||
|
"ipc_channel_mojo.h",
|
||
|
"ipc_channel_nacl.cc",
|
||
|
"ipc_channel_nacl.h",
|
||
|
"ipc_channel_proxy.cc",
|
||
|
"ipc_channel_proxy.h",
|
||
|
"ipc_channel_reader.cc",
|
||
|
"ipc_channel_reader.h",
|
||
|
"ipc_listener.h",
|
||
|
"ipc_logging.cc",
|
||
|
"ipc_logging.h",
|
||
|
"ipc_message_macros.h",
|
||
|
"ipc_message_pipe_reader.cc",
|
||
|
"ipc_message_pipe_reader.h",
|
||
|
"ipc_message_start.h",
|
||
|
"ipc_message_templates.h",
|
||
|
"ipc_message_templates_impl.h",
|
||
|
"ipc_message_utils.cc",
|
||
|
"ipc_message_utils.h",
|
||
|
"ipc_mojo_bootstrap.cc",
|
||
|
"ipc_mojo_bootstrap.h",
|
||
|
"ipc_mojo_param_traits.cc",
|
||
|
"ipc_mojo_param_traits.h",
|
||
|
"ipc_sender.h",
|
||
|
"ipc_sync_channel.cc",
|
||
|
"ipc_sync_channel.h",
|
||
|
"ipc_sync_message_filter.cc",
|
||
|
"ipc_sync_message_filter.h",
|
||
|
"message_filter.cc",
|
||
|
"message_filter.h",
|
||
|
"message_filter_router.cc",
|
||
|
"message_filter_router.h",
|
||
|
"message_router.cc",
|
||
|
"message_router.h",
|
||
|
"param_traits_log_macros.h",
|
||
|
"param_traits_macros.h",
|
||
|
"param_traits_read_macros.h",
|
||
|
"param_traits_write_macros.h",
|
||
|
"struct_constructor_macros.h",
|
||
|
"struct_destructor_macros.h",
|
||
|
]
|
||
|
|
||
|
if (is_nacl && !is_nacl_nonsfi) {
|
||
|
sources -= [ "ipc_channel.cc" ]
|
||
|
} else {
|
||
|
sources -= [
|
||
|
"ipc_channel_nacl.cc",
|
||
|
"ipc_channel_nacl.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
defines = [ "IS_IPC_IMPL" ]
|
||
|
|
||
|
public_deps = [
|
||
|
":ipc_buildflags",
|
||
|
":message_support",
|
||
|
":mojom",
|
||
|
":native_handle_type_converters",
|
||
|
":param_traits",
|
||
|
"//mojo/public/cpp/bindings",
|
||
|
"//mojo/public/cpp/system",
|
||
|
]
|
||
|
|
||
|
if (!is_nacl_nonsfi) {
|
||
|
sources += [ "ipc_message_protobuf_utils.h" ]
|
||
|
|
||
|
public_deps += [ "//third_party/protobuf:protobuf_lite" ]
|
||
|
}
|
||
|
|
||
|
deps = [
|
||
|
"//base",
|
||
|
]
|
||
|
|
||
|
if (enable_ipc_fuzzer) {
|
||
|
public_configs = [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
component("message_support") {
|
||
|
sources = [
|
||
|
"handle_attachment_win.cc",
|
||
|
"handle_attachment_win.h",
|
||
|
"handle_win.cc",
|
||
|
"handle_win.h",
|
||
|
"ipc_message.cc",
|
||
|
"ipc_message.h",
|
||
|
"ipc_message_attachment.cc",
|
||
|
"ipc_message_attachment.h",
|
||
|
"ipc_message_attachment_set.cc",
|
||
|
"ipc_message_attachment_set.h",
|
||
|
"ipc_message_support_export.h",
|
||
|
"ipc_mojo_handle_attachment.cc",
|
||
|
"ipc_mojo_handle_attachment.h",
|
||
|
"ipc_mojo_message_helper.cc",
|
||
|
"ipc_mojo_message_helper.h",
|
||
|
"ipc_platform_file.cc",
|
||
|
"ipc_platform_file.h",
|
||
|
"ipc_sync_message.cc",
|
||
|
"ipc_sync_message.h",
|
||
|
"mach_port_attachment_mac.cc",
|
||
|
"mach_port_attachment_mac.h",
|
||
|
"mach_port_mac.cc",
|
||
|
"mach_port_mac.h",
|
||
|
]
|
||
|
|
||
|
if (is_posix || is_fuchsia) {
|
||
|
sources += [
|
||
|
"ipc_platform_file_attachment_posix.cc",
|
||
|
"ipc_platform_file_attachment_posix.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (is_fuchsia) {
|
||
|
sources += [
|
||
|
"handle_attachment_fuchsia.cc",
|
||
|
"handle_attachment_fuchsia.h",
|
||
|
"handle_fuchsia.cc",
|
||
|
"handle_fuchsia.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
defines = [ "IPC_MESSAGE_SUPPORT_IMPL" ]
|
||
|
|
||
|
public_deps = [
|
||
|
":ipc_buildflags",
|
||
|
":param_traits",
|
||
|
"//base",
|
||
|
"//mojo/public/cpp/system",
|
||
|
]
|
||
|
|
||
|
if (is_win || is_mac) {
|
||
|
# On Windows HandleAttachmentWin needs to generate random IDs.
|
||
|
# On Mac MachPortAttachmentMac needs to generate random IDs.
|
||
|
deps = [
|
||
|
"//crypto",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
source_set("native_handle_type_converters") {
|
||
|
sources = [
|
||
|
"native_handle_type_converters.cc",
|
||
|
"native_handle_type_converters.h",
|
||
|
]
|
||
|
public_deps = [
|
||
|
":message_support",
|
||
|
"//mojo/public/interfaces/bindings:bindings_shared__generator",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
mojom_component("mojom") {
|
||
|
output_prefix = "ipc_mojom"
|
||
|
macro_prefix = "IPC_MOJOM"
|
||
|
sources = [
|
||
|
"ipc.mojom",
|
||
|
]
|
||
|
public_deps = [
|
||
|
"//mojo/public/interfaces/bindings",
|
||
|
"//mojo/public/mojom/base:read_only_buffer",
|
||
|
]
|
||
|
|
||
|
# Don't generate a variant sources since we depend on generated internal
|
||
|
# bindings types and we don't generate or build variants of those.
|
||
|
disable_variants = true
|
||
|
}
|
||
|
|
||
|
mojom("mojom_constants") {
|
||
|
sources = [
|
||
|
"constants.mojom",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
mojom("test_interfaces") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"ipc_test.mojom",
|
||
|
]
|
||
|
support_lazy_serialization = true
|
||
|
}
|
||
|
|
||
|
# This is provided as a separate target so other targets can provide param
|
||
|
# traits implementations without necessarily linking to all of IPC.
|
||
|
source_set("param_traits") {
|
||
|
public = [
|
||
|
"ipc_param_traits.h",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (!is_ios) {
|
||
|
source_set("run_all_unittests") {
|
||
|
testonly = true
|
||
|
|
||
|
sources = [
|
||
|
"run_all_unittests.cc",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
"//base",
|
||
|
"//base/test:test_support",
|
||
|
"//mojo/edk",
|
||
|
"//mojo/edk/test:test_support",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
proto_library("test_proto") {
|
||
|
sources = [
|
||
|
"test_proto.proto",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
test("ipc_tests") {
|
||
|
sources = [
|
||
|
"ipc_channel_mojo_unittest.cc",
|
||
|
"ipc_channel_proxy_unittest.cc",
|
||
|
"ipc_channel_reader_unittest.cc",
|
||
|
"ipc_fuzzing_tests.cc",
|
||
|
"ipc_message_unittest.cc",
|
||
|
"ipc_message_utils_unittest.cc",
|
||
|
"ipc_mojo_bootstrap_unittest.cc",
|
||
|
"ipc_sync_channel_unittest.cc",
|
||
|
"ipc_sync_message_unittest.cc",
|
||
|
"ipc_sync_message_unittest.h",
|
||
|
"ipc_test_message_generator.cc",
|
||
|
"ipc_test_message_generator.h",
|
||
|
"ipc_test_messages.h",
|
||
|
"sync_socket_unittest.cc",
|
||
|
]
|
||
|
|
||
|
if (is_posix || is_fuchsia) {
|
||
|
sources += [ "ipc_message_attachment_set_posix_unittest.cc" ]
|
||
|
}
|
||
|
|
||
|
if (!is_ios) {
|
||
|
sources += [ "ipc_send_fds_test.cc" ]
|
||
|
}
|
||
|
|
||
|
deps = [
|
||
|
":ipc",
|
||
|
":run_all_unittests",
|
||
|
":test_interfaces",
|
||
|
":test_proto",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//base:i18n",
|
||
|
"//base/test:test_support",
|
||
|
"//crypto",
|
||
|
"//mojo/edk",
|
||
|
"//mojo/edk/test:test_support",
|
||
|
"//testing/gtest",
|
||
|
]
|
||
|
|
||
|
if (is_mac) {
|
||
|
deps += [ "//sandbox/mac:seatbelt" ]
|
||
|
}
|
||
|
|
||
|
if (is_fuchsia) {
|
||
|
sources -= [
|
||
|
# No AF_UNIX domain sockets on Fuchsia.
|
||
|
"sync_socket_unittest.cc",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
if (!is_nacl_nonsfi) {
|
||
|
sources += [ "ipc_message_protobuf_utils_unittest.cc" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
test("ipc_perftests") {
|
||
|
sources = [
|
||
|
"ipc_cpu_perftest.cc",
|
||
|
"ipc_mojo_perftest.cc",
|
||
|
"ipc_perftest_messages.cc",
|
||
|
"ipc_perftest_messages.h",
|
||
|
"ipc_perftest_util.cc",
|
||
|
"ipc_perftest_util.h",
|
||
|
"run_all_perftests.cc",
|
||
|
]
|
||
|
|
||
|
deps = [
|
||
|
":ipc",
|
||
|
":test_interfaces",
|
||
|
":test_support",
|
||
|
"//base",
|
||
|
"//base:i18n",
|
||
|
"//base/test:test_support",
|
||
|
"//mojo/edk",
|
||
|
"//mojo/edk/test:test_support",
|
||
|
"//mojo/edk/test:test_support_impl",
|
||
|
"//testing/gtest",
|
||
|
]
|
||
|
}
|
||
|
|
||
|
static_library("test_support") {
|
||
|
testonly = true
|
||
|
sources = [
|
||
|
"ipc_security_test_util.cc",
|
||
|
"ipc_security_test_util.h",
|
||
|
"ipc_test_base.cc",
|
||
|
"ipc_test_base.h",
|
||
|
"ipc_test_channel_listener.cc",
|
||
|
"ipc_test_channel_listener.h",
|
||
|
"ipc_test_sink.cc",
|
||
|
"ipc_test_sink.h",
|
||
|
]
|
||
|
public_deps = [
|
||
|
":ipc",
|
||
|
]
|
||
|
deps = [
|
||
|
"//base",
|
||
|
"//base/test:test_support",
|
||
|
"//mojo/edk/test:test_support",
|
||
|
"//testing/gtest",
|
||
|
]
|
||
|
}
|
||
|
}
|