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

group("all") {
  deps = [
    ":libcab_test",
    ":libcam_algo_test",
  ]
}

pkg_config("target_defaults") {
  pkg_deps = [ "libcamera_common" ]
  configs = [ "//camera/build:cros_camera_common" ]
}

shared_library("libcam_algo_test") {
  sources = [ "//camera/common/fake_libcam_algo.cc" ]
  configs += [ ":target_defaults" ]
}

executable("libcab_test") {
  sources = [ "//camera/common/libcab_test_main.cc" ]
  configs += [
    ":target_defaults",
    "//common-mk:test",
  ]
  pkg_deps = [
    "libbrillo",
    "libcab",
  ]
  libs = [ "rt" ]
  deps = [
    "//camera/common/libcamera_ipc",
    "//camera/common/libcamera_ipc:libcamera_ipc_mojom",
  ]
}
