# Copyright 2016 The Chromium 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("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("shapedetection") {
  sources = [
    "barcode_detector.cc",
    "barcode_detector.h",
    "barcode_detector_statics.cc",
    "barcode_detector_statics.h",
    "face_detector.cc",
    "face_detector.h",
    "shape_detection_type_converter.h",
    "shape_detector.cc",
    "shape_detector.h",
    "text_detector.cc",
    "text_detector.h",
  ]

  public_deps = [
    "//services/shape_detection/public/mojom:mojom_blink",
    "//skia/public/mojom",
  ]
  deps = [ "//third_party/blink/renderer/modules/canvas" ]
}
