# Copyright 2020 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.

group("all") {
  deps = [ ":libcamera_connector" ]
}

shared_library("libcamera_connector") {
  sources = [
    "//camera/common/ipc_util.cc",
    "//camera/common/libcamera_connector/camera_client.cc",
    "//camera/common/libcamera_connector/camera_client_ops.cc",
    "//camera/common/libcamera_connector/camera_metadata_utils.cc",
    "//camera/common/libcamera_connector/camera_module_callbacks.cc",
    "//camera/common/libcamera_connector/camera_service_connector.cc",
    "//camera/common/libcamera_connector/camera_service_connector_impl.cc",
    "//camera/common/libcamera_connector/stream_buffer_manager.cc",
    "//camera/common/libcamera_connector/supported_formats.cc",
  ]
  output_name = "libcamera_connector"
  configs += [ "//camera/build:cros_camera_common" ]
  deps = [
    "//camera/common/libcamera_ipc:libcamera_ipc",
    "//camera/common/libcamera_ipc:libcamera_ipc_mojom",
  ]
  pkg_deps = [
    "cros-camera-android-headers",
    "libcamera_common",
    "libcamera_metadata",
    "libdrm",
    "libmojo",
    "libsync",
  ]
}
