| # Copyright 2019 The ChromiumOS Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| import("//common-mk/mojom_bindings_generator.gni") | |
| import("//common-mk/pkg_config.gni") | |
| group("all") { | |
| deps = [ | |
| ":install_dbus_config", | |
| ":install_dbus_service", | |
| ":install_init", | |
| ":install_minijail_conf", | |
| ":midis", | |
| ] | |
| if (use.seccomp) { | |
| deps += [ ":install_seccomp_policy" ] | |
| } | |
| if (use.test) { | |
| deps += [ ":midis_testrunner" ] | |
| } | |
| if (use.fuzzer) { | |
| deps += [ ":midis_seq_handler_fuzzer" ] | |
| } | |
| } | |
| generate_mojom_bindings("midis_mojo_bindings") { | |
| sources = [ "mojo/midis.mojom" ] | |
| } | |
| pkg_config("midis_common_pkg_deps") { | |
| pkg_deps = [ | |
| "alsa", | |
| "libbrillo", | |
| "libchrome", | |
| "libmojo", | |
| ] | |
| } | |
| static_library("midis_common") { | |
| sources = [ | |
| # Files included from Chrome //src/media/midi checkout. | |
| # This directory is placed in platform2 as platform2/media/midi. | |
| "../media/midi/message_util.cc", | |
| "../media/midi/midi_message_queue.cc", | |
| "client.cc", | |
| "client_tracker.cc", | |
| "device.cc", | |
| "device_tracker.cc", | |
| "ports.cc", | |
| "seq_handler.cc", | |
| "subdevice_client_fd_holder.cc", | |
| ] | |
| all_dependent_configs = [ ":midis_common_pkg_deps" ] | |
| deps = [ ":midis_mojo_bindings" ] | |
| } | |
| executable("midis") { | |
| sources = [ | |
| "daemon.cc", | |
| "main.cc", | |
| ] | |
| install_path = "bin" | |
| libs = [ "dl" ] | |
| deps = [ ":midis_common" ] | |
| } | |
| install_config("install_init") { | |
| sources = [ "init/midis.conf" ] | |
| install_path = "upstart" | |
| } | |
| install_config("install_minijail_conf") { | |
| sources = [ "minijail/midis.conf" ] | |
| install_path = "minijail_conf" | |
| } | |
| # Install midis DBUS configuration file | |
| install_config("install_dbus_config") { | |
| sources = [ "dbus_permissions/org.chromium.Midis.conf" ] | |
| install_path = "dbus_system_d" | |
| } | |
| # Install D-Bus service activation configuration. | |
| install_config("install_dbus_service") { | |
| sources = [ "dbus_permissions/org.chromium.Midis.service" ] | |
| install_path = "dbus_system_services" | |
| } | |
| if (use.seccomp) { | |
| # Install seccomp policy file. | |
| install_config("install_seccomp_policy") { | |
| sources = [ "seccomp/midis-seccomp-" + getenv("ARCH") + ".policy" ] | |
| install_path = "seccomp_policy" | |
| outputs = [ "midis-seccomp.policy" ] | |
| } | |
| } | |
| if (use.test) { | |
| executable("midis_testrunner") { | |
| sources = [ | |
| "tests/client_test.cc", | |
| "tests/client_tracker_test.cc", | |
| "tests/device_tracker_test.cc", | |
| "tests/seq_handler_test.cc", | |
| "tests/test_helper.cc", | |
| ] | |
| configs += [ "//common-mk:test" ] | |
| run_test = true | |
| deps = [ | |
| ":midis_common", | |
| "//common-mk/testrunner:testrunner", | |
| ] | |
| } | |
| } | |
| # Fuzzer target. | |
| if (use.fuzzer) { | |
| executable("midis_seq_handler_fuzzer") { | |
| sources = [ "seq_handler_fuzzer.cc" ] | |
| configs += [ "//common-mk/common_fuzzer:common_fuzzer" ] | |
| deps = [ ":midis_common" ] | |
| } | |
| } |