# 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("//build/config/ui.gni")
import("//mojo/public/mojo_application.gni")

assert(use_aura)

mojo_native_application("aura_demo") {
  sources = [
    "aura_demo.cc"
  ]

  deps = [
    "//base",
    "//cc",
    "//ui/aura",
    "//ui/base",
    "//ui/compositor",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//mojo/application",
    "//mojo/common",
    "//mojo/converters/geometry",
    "//mojo/aura",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/services/public/interfaces/geometry",
    "//mojo/services/public/cpp/view_manager",
  ]

  datadeps = [ ":init" ]
}

mojo_native_application("init") {
  output_name = "aura_demo_init"

  sources = [
    "view_manager_init.cc",
  ]

  deps = [
    "//base",
    "//mojo/application",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/services/public/cpp/view_manager",
    "//mojo/services/public/interfaces/view_manager",
  ]
}
