# 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.

# GYP version: mojo/mojo_examples.gypi:mojo_sample_app
shared_library("sample_app") {
  output_name = "mojo_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",
  ]
}
