# Copyright 2013 The Flutter 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("//flutter/impeller/tools/impeller.gni")

impeller_component("geometry") {
  sources = [
    "color.cc",
    "color.h",
    "constants.cc",
    "constants.h",
    "gradient.cc",
    "gradient.h",
    "half.h",
    "matrix.cc",
    "matrix.h",
    "matrix_decomposition.cc",
    "matrix_decomposition.h",
    "path.cc",
    "path.h",
    "path_builder.cc",
    "path_builder.h",
    "path_component.cc",
    "path_component.h",
    "point.cc",
    "point.h",
    "quaternion.cc",
    "quaternion.h",
    "rect.cc",
    "rect.h",
    "scalar.h",
    "shear.cc",
    "shear.h",
    "sigma.cc",
    "sigma.h",
    "size.cc",
    "size.h",
    "type_traits.cc",
    "type_traits.h",
    "vector.cc",
    "vector.h",
  ]

  deps = [
    "../base",
    "//flutter/fml",
  ]
}

impeller_component("geometry_asserts") {
  testonly = true
  sources = [ "geometry_asserts.h" ]
  deps = [
    ":geometry",
    "//flutter/testing:testing_lib",
  ]
}

impeller_component("geometry_unittests") {
  testonly = true
  sources = [ "geometry_unittests.cc" ]
  deps = [
    ":geometry",
    ":geometry_asserts",
    "//flutter/testing:testing_lib",
  ]
}

executable("geometry_benchmarks") {
  testonly = true
  sources = [ "geometry_benchmarks.cc" ]
  deps = [
    ":geometry",
    "../tessellator",
    "//flutter/benchmarking",
  ]
}
