# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


import("../../build/fuchsia_sdk_pkg.gni")

fuchsia_sdk_pkg("scenic_cpp") {
  sources = [
    "commands.cc",
    "commands_sizing.cc",
    "resources.cc",
    "session.cc",
    "view_ref_pair.cc",
    "view_token_pair.cc",
    "include/lib/ui/scenic/cpp/commands.h",
    "include/lib/ui/scenic/cpp/commands_sizing.h",
    "include/lib/ui/scenic/cpp/id.h",
    "include/lib/ui/scenic/cpp/resources.h",
    "include/lib/ui/scenic/cpp/session.h",
    "include/lib/ui/scenic/cpp/view_ref_pair.h",
    "include/lib/ui/scenic/cpp/view_token_pair.h",
  ]
  include_dirs = [ "include" ]
  public_deps = [
    "../../fidl/fuchsia.images",
    "../../fidl/fuchsia.ui.gfx",
    "../../fidl/fuchsia.ui.scenic",
    "../../fidl/fuchsia.ui.views",
    "../fidl_cpp",
    "../fit",
    "../images_cpp",
    "../syslog",
    "../zx",
  ]
}

group("all"){
  deps = [
    ":scenic_cpp",
  ]
}
