# 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. import("//testing/test.gni") import("../../../mojo/public/tools/bindings/mojom.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } config("system_config") { defines = [ # Ensures that dependent projects import the core functions on Windows. "MOJO_USE_SYSTEM_IMPL", ] } component("system") { output_name = "mojo_system_impl" sources = [ "async_waiter.cc", "async_waiter.h", "awakable.h", "awakable_list.cc", "awakable_list.h", "broker.h", "broker_host.h", "broker_host_posix.cc", "broker_posix.cc", "channel.cc", "channel.h", "channel_posix.cc", "channel_win.cc", "configuration.cc", "configuration.h", "core.cc", "core.h", "data_pipe_consumer_dispatcher.cc", "data_pipe_consumer_dispatcher.h", "data_pipe_control_message.cc", "data_pipe_control_message.h", "data_pipe_producer_dispatcher.cc", "data_pipe_producer_dispatcher.h", "dispatcher.cc", "dispatcher.h", "handle_signals_state.h", "handle_table.cc", "handle_table.h", "mapping_table.cc", "mapping_table.h", "message_pipe_dispatcher.cc", "message_pipe_dispatcher.h", "node_channel.cc", "node_channel.h", "node_controller.cc", "node_controller.h", "options_validation.h", "platform_handle_dispatcher.cc", "platform_handle_dispatcher.h", "ports_message.cc", "ports_message.h", "remote_message_pipe_bootstrap.cc", "remote_message_pipe_bootstrap.h", "request_context.cc", "request_context.h", "shared_buffer_dispatcher.cc", "shared_buffer_dispatcher.h", "wait_set_dispatcher.cc", "wait_set_dispatcher.h", "waiter.cc", "waiter.h", "watcher.cc", "watcher.h", "watcher_set.cc", "watcher_set.h", ] defines = [ "MOJO_SYSTEM_IMPL_IMPLEMENTATION", "MOJO_SYSTEM_IMPLEMENTATION", ] all_dependent_configs = [ ":system_config" ] public_deps = [ "//mojo/edk/embedder", "//mojo/edk/embedder:delegates", "//mojo/edk/embedder:platform", "//mojo/edk/system/ports", "//mojo/public/c/system", "//mojo/public/cpp/system", ] deps = [ "//base", "//base/third_party/dynamic_annotations", "//crypto", ] if (is_win) { cflags = [ "/wd4324" ] # Structure was padded due to __declspec(align()), # which is uninteresting. } if (is_mac && !is_ios) { sources += [ "mach_port_relay.cc", "mach_port_relay.h", ] } allow_circular_includes_from = [ "//mojo/edk/embedder" ] } group("tests") { testonly = true deps = [ ":mojo_message_pipe_perftests", ":mojo_system_unittests", ] } source_set("test_utils") { testonly = true sources = [ "test_utils.cc", "test_utils.h", ] public_deps = [ "//mojo/public/c/system", "//mojo/public/cpp/system", ] deps = [ "//base", "//base/test:test_support", "//mojo/edk/test:test_support", "//testing/gtest:gtest", ] } test("mojo_system_unittests") { sources = [ "awakable_list_unittest.cc", "core_test_base.cc", "core_test_base.h", "core_unittest.cc", "data_pipe_unittest.cc", "message_pipe_unittest.cc", "options_validation_unittest.cc", "platform_handle_dispatcher_unittest.cc", "shared_buffer_dispatcher_unittest.cc", "shared_buffer_unittest.cc", "wait_set_dispatcher_unittest.cc", "waiter_test_utils.cc", "waiter_test_utils.h", "waiter_unittest.cc", "watch_unittest.cc", ] if (!is_ios) { sources += [ "multiprocess_message_pipe_unittest.cc" ] } deps = [ ":test_utils", "//base", "//base/test:test_support", "//mojo/edk/embedder:embedder_unittests", "//mojo/edk/system", "//mojo/edk/test:run_all_unittests", "//mojo/edk/test:test_support", "//testing/gtest", ] allow_circular_includes_from = [ "//mojo/edk/embedder:embedder_unittests" ] } test("mojo_message_pipe_perftests") { sources = [ "message_pipe_perftest.cc", ] deps = [ ":test_utils", "//base", "//base/test:test_support", "//mojo/edk/system", "//mojo/edk/test:run_all_perftests", "//mojo/edk/test:test_support", "//testing/gtest", ] }