# 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/pkg_config.gni")

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

pkg_config("target_defaults") {
  pkg_deps = [
    "cros-camera-android-headers",
    "gbm",
    "libbrillo",
    "libcamera_client",
    "libcamera_common",
    "libcamera_metadata",
    "libcbm",
    "libdrm",
    "libexif",
    "libsync",
    "libyuv",
  ]
  configs = [ "//camera/build:cros_camera_common" ]
}

executable("cros_camera_test") {
  sources = [
    "//camera/common/ipc_util.cc",
    "//camera/common/utils/camera_hal_enumerator.cc",
    "//camera/common/utils/cros_camera_mojo_utils.cc",
    "//camera/common/vendor_tag_manager.cc",
    "camera3_device_connector.cc",
    "camera3_device_impl.cc",
    "camera3_device_test.cc",
    "camera3_exif_validator.cc",
    "camera3_frame_test.cc",
    "camera3_module_connector.cc",
    "camera3_module_test.cc",
    "camera3_perf_log.cc",
    "camera3_preview_test.cc",
    "camera3_recording_test.cc",
    "camera3_reprocessing_test.cc",
    "camera3_service.cc",
    "camera3_still_capture_test.cc",
    "camera3_stream_test.cc",
    "camera3_test_data_forwarder.cc",
    "camera3_test_gralloc.cc",
  ]
  configs += [
    "//common-mk:test",
    ":target_defaults",
  ]
  libs = [
    "dl",
    "jpeg",
  ]
  deps = [
    "//camera/common/libcamera_ipc",
    "//camera/common/libcamera_ipc:libcamera_ipc_mojom",
  ]
}
