# 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("//ppapi/examples/ppapi_example.gni")

group("2d") {
  testonly = true
  deps = [
    ":graphics_2d",
    ":paint_manager",
    ":scroll",
  ]
}

ppapi_example("graphics_2d") {
  output_name = "ppapi_example_graphics_2d"
  sources = [
    "graphics_2d_example.c",
  ]
  deps = [
    "//ppapi/c",
  ]
}

ppapi_example("paint_manager") {
  output_name = "ppapi_example_paint_manager"
  sources = [
    "paint_manager_example.cc",
  ]
  deps = [
    "//ppapi/cpp",
  ]
}

ppapi_example("scroll") {
  output_name = "ppapi_example_scroll"
  sources = [
    "scroll.cc",
  ]
  deps = [
    "//ppapi/cpp",
  ]
}
