blob: 38fe5341b2af56b0e25e440b81aec03067f35d32 [file] [log] [blame]
# Copyright 2019 The Chromium OS 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("//common-mk/mojom_bindings_generator.gni")
import("//common-mk/pkg_config.gni")
group("all") {
deps = [
":install_dbus_config",
":install_dbus_service",
":install_init",
":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 = "/etc/init"
}
# Install midis DBUS configuration file
install_config("install_dbus_config") {
sources = [ "dbus_permissions/org.chromium.Midis.conf" ]
install_path = "/etc/dbus-1/system.d"
}
# Install D-Bus service activation configuration.
install_config("install_dbus_service") {
sources = [ "dbus_permissions/org.chromium.Midis.service" ]
install_path = "/usr/share/dbus-1/system-services"
}
if (use.seccomp) {
# Install seccomp policy file.
install_config("install_seccomp_policy") {
sources = [ "seccomp/midis-seccomp-" + getenv("ARCH") + ".policy" ]
install_path = "/usr/share/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" ]
}
}