# Copyright 2015 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("//build/module_args/mojo.gni")
import("$mojo_sdk_root/mojo/public/mojo_application.gni")
import("$mojo_sdk_root/mojo/public/mojo_sdk.gni")

mojo_sdk_source_set("cpp") {
  restrict_external_deps = false
  public_configs = [ "../../../public/build/config:mojo_services" ]
  sources = [
    "formatting.cc",
    "formatting.h",
    "frame_tracker.cc",
    "frame_tracker.h",
  ]

  deps = [
    "../../../geometry/cpp",
    "../interfaces",
  ]
}

mojo_native_application("apptests") {
  output_name = "gfx_composition_apptests"

  testonly = true

  sources = [
    "frame_tracker_apptest.cc",
  ]

  deps = [
    ":cpp",
    "$mojo_sdk_root/mojo/public/cpp/application:standalone",
    "$mojo_sdk_root/mojo/public/cpp/application:test_support_standalone",
    "../interfaces",
    "//testing/gtest",
  ]
}
