blob: 37c283c276c618841538fddb9d12f64dbdc16489 [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")
import("//common-mk/proto_library.gni")
group("all") {
deps = [
":mps_main",
":rtanalytics_main",
]
if (use.test) {
deps += [ ":media_perception_service_test" ]
}
}
pkg_config("target_defaults") {
pkg_deps = [ "protobuf" ]
}
proto_library("media_perception_protos") {
proto_in_dir = "proto/"
proto_out_dir = "include/media_perception"
sources = [
"${proto_in_dir}/common.proto",
"${proto_in_dir}/device_management.proto",
"${proto_in_dir}/frame_perception.proto",
"${proto_in_dir}/hotword_detection.proto",
"${proto_in_dir}/huddly.proto",
"${proto_in_dir}/media_perception_mojom.proto",
"${proto_in_dir}/occupancy_trigger.proto",
"${proto_in_dir}/perception_interface.proto",
"${proto_in_dir}/pipeline.proto",
"${proto_in_dir}/presence_perception.proto",
]
}
generate_mojom_bindings("media_perception_mojo_bindings") {
sources = [
"mojom/appearances.mojom",
"mojom/buffer_types.mojom",
"mojom/color_space.mojom",
"mojom/common.mojom",
"mojom/constants.mojom",
"mojom/device.mojom",
"mojom/device_factory.mojom",
"mojom/device_management.mojom",
"mojom/devices_changed_observer.mojom",
"mojom/frame_perception.mojom",
"mojom/geometry.mojom",
"mojom/hdr_metadata.mojom",
"mojom/hotword_detection.mojom",
"mojom/image_capture.mojom",
"mojom/mailbox.mojom",
"mojom/mailbox_holder.mojom",
"mojom/media_perception.mojom",
"mojom/media_perception_service.mojom",
"mojom/media_types.mojom",
"mojom/native_handle_types.mojom",
"mojom/occupancy_trigger.mojom",
"mojom/one_touch_autozoom.mojom",
"mojom/pipeline.mojom",
"mojom/presence_perception.mojom",
"mojom/producer.mojom",
"mojom/scoped_access_permission.mojom",
"mojom/shared_memory.mojom",
"mojom/software_autozoom.mojom",
"mojom/sync_token.mojom",
"mojom/time.mojom",
"mojom/unguessable_token.mojom",
"mojom/values.mojom",
"mojom/video_capture_buffer.mojom",
"mojom/video_capture_types.mojom",
"mojom/video_frame_handler.mojom",
"mojom/video_source.mojom",
"mojom/video_source_provider.mojom",
"mojom/virtual_device.mojom",
"mojom/vulkan_ycbcr_info.mojom",
]
}
static_library("media_perception_service_lib") {
all_dependent_pkg_deps = [
"libbrillo",
"libchrome",
"libmojo",
]
sources = [
"audio_receiver.cc",
"chrome_audio_service_client_impl.cc",
"cras_client_impl.cc",
"cros_dbus_service.cc",
"media_perception_controller_impl.cc",
"media_perception_impl.cc",
"media_perception_service_impl.cc",
"mojo_connector.cc",
"output_manager.cc",
"producer_impl.cc",
"proto_mojom_conversion.cc",
"video_capture_service_client_impl.cc",
"video_frame_handler_impl.cc",
]
pkg_deps = [
"dbus-1",
"libcras",
]
configs += [ ":target_defaults" ]
deps = [
":media_perception_mojo_bindings",
":media_perception_protos",
]
}
executable("rtanalytics_main") {
sources = [ "main.cc" ]
configs += [ ":target_defaults" ]
libs = [
"rtanalytics",
"dl",
]
# librtanalytics.so is imported to the build directory by mri_package ebuild.
lib_dirs = [ root_build_dir ]
deps = [ ":media_perception_service_lib" ]
}
executable("mps_main") {
sources = [ "mps_main.cc" ]
configs += [ ":target_defaults" ]
libs = [
"rtanalytics",
"dl",
]
# librtanalytics.so is imported to the build directory by mri_package ebuild.
lib_dirs = [ root_build_dir ]
deps = [ ":media_perception_service_lib" ]
}
if (use.test) {
executable("media_perception_service_test") {
sources = [
"fake_chrome_audio_service_client.cc",
"fake_rtanalytics.cc",
"fake_video_capture_service_client.cc",
"media_perception_impl_test.cc",
"output_manager_test.cc",
"proto_mojom_conversion_test.cc",
"testrunner.cc",
]
configs += [
"//common-mk:test",
":target_defaults",
]
deps = [ ":media_perception_service_lib" ]
}
}