# Copyright 2014 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("//mojo/public/mojo_application.gni")

mojo_native_application("sample_app") {
  sources = [
    "gles2_client_impl.cc",
    "gles2_client_impl.h",
    "sample_app.cc",
  ]

  deps = [
    ":spinning_cube",
    "//base",
    "//gpu/command_buffer/client:gles2_interface",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/public/cpp/application:standalone",
    "//mojo/public/cpp/bindings",
    "//mojo/public/cpp/utility",
    "//mojo/public/gles2:for_shared_library",
    "//mojo/services/public/interfaces/geometry",
    "//mojo/services/public/interfaces/native_viewport",
  ]
}

source_set("spinning_cube") {
  sources = [
    "spinning_cube.cc",
    "spinning_cube.h"
  ]

  deps = [
    "//base",
    "//mojo/public/gles2:for_shared_library",
  ]
}
