# 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("//mojo/public/dart/rules.gni")

dart_pkg("sdk") {
  sources = [
    "CHANGELOG.md",
    "bin/init.dart",
    "lib/assets/.gitignore",
    "lib/assets/material-design-icons.sha1",
    "lib/download_material_design_icons",
    "lib/framework/README.md",
    "lib/framework/animation/animated_value.dart",
    "lib/framework/animation/curves.dart",
    "lib/framework/animation/fling_curve.dart",
    "lib/framework/animation/generators.dart",
    "lib/framework/animation/mechanics.dart",
    "lib/framework/animation/scroll_behavior.dart",
    "lib/framework/app.dart",
    "lib/framework/components/animated_component.dart",
    "lib/framework/components/button.dart",
    "lib/framework/components/button_base.dart",
    "lib/framework/components/checkbox.dart",
    "lib/framework/components/drawer.dart",
    "lib/framework/components/drawer_header.dart",
    "lib/framework/components/fixed_height_scrollable.dart",
    "lib/framework/components/floating_action_button.dart",
    "lib/framework/components/icon.dart",
    "lib/framework/components/icon_button.dart",
    "lib/framework/components/ink_splash.dart",
    "lib/framework/components/ink_well.dart",
    "lib/framework/components/input.dart",
    "lib/framework/components/material.dart",
    "lib/framework/components/menu_divider.dart",
    "lib/framework/components/menu_item.dart",
    "lib/framework/components/modal_overlay.dart",
    "lib/framework/components/popup_menu.dart",
    "lib/framework/components/popup_menu_item.dart",
    "lib/framework/components/radio.dart",
    "lib/framework/components/scaffold.dart",
    "lib/framework/components/scrollable.dart",
    "lib/framework/components/tool_bar.dart",
    "lib/framework/components2/animated_component.dart",
    "lib/framework/components2/button.dart",
    "lib/framework/components2/button_base.dart",
    "lib/framework/components2/checkbox.dart",
    "lib/framework/components2/drawer.dart",
    "lib/framework/components2/drawer_header.dart",
    "lib/framework/components2/fixed_height_scrollable.dart",
    "lib/framework/components2/floating_action_button.dart",
    "lib/framework/components2/icon.dart",
    "lib/framework/components2/icon_button.dart",
    "lib/framework/components2/ink_splash.dart",
    "lib/framework/components2/ink_well.dart",
    "lib/framework/components2/input.dart",
    "lib/framework/components2/material.dart",
    "lib/framework/components2/menu_divider.dart",
    "lib/framework/components2/menu_item.dart",
    "lib/framework/components2/modal_overlay.dart",
    "lib/framework/components2/popup_menu.dart",
    "lib/framework/components2/popup_menu_item.dart",
    "lib/framework/components2/radio.dart",
    "lib/framework/components2/scaffold.dart",
    "lib/framework/components2/scrollable.dart",
    "lib/framework/components2/tool_bar.dart",
    "lib/framework/debug/shake-to-reload.sky",
    "lib/framework/debug/tracing.dart",
    "lib/framework/editing/editable_string.dart",
    "lib/framework/editing/editable_text.dart",
    "lib/framework/editing/keyboard.dart",
    "lib/framework/elements/animation/controller.dart",
    "lib/framework/elements/animation/timer.dart",
    "lib/framework/elements/material-element.sky",
    "lib/framework/elements/shadow.sky",
    "lib/framework/elements/sky-box.sky",
    "lib/framework/elements/sky-button.sky",
    "lib/framework/elements/sky-checkbox.sky",
    "lib/framework/elements/sky-drawer-header.sky",
    "lib/framework/elements/sky-drawer.sky",
    "lib/framework/elements/sky-element.sky",
    "lib/framework/elements/sky-icon.sky",
    "lib/framework/elements/sky-ink-splash.sky",
    "lib/framework/elements/sky-input.sky",
    "lib/framework/elements/sky-menu-divider.sky",
    "lib/framework/elements/sky-menu-item.sky",
    "lib/framework/elements/sky-radio.sky",
    "lib/framework/elements/sky-scrollable.sky",
    "lib/framework/elements/sky-toolbar.sky",
    "lib/framework/embedder.dart",
    "lib/framework/fn.dart",
    "lib/framework/fn2.dart",
    "lib/framework/layout.dart",
    "lib/framework/net/fetch.dart",
    "lib/framework/net/image_cache.dart",
    "lib/framework/node.dart",
    "lib/framework/reflect.dart",
    "lib/framework/rendering/block.dart",
    "lib/framework/rendering/box.dart",
    "lib/framework/rendering/flex.dart",
    "lib/framework/rendering/node.dart",
    "lib/framework/rendering/paragraph.dart",
    "lib/framework/scheduler.dart",
    "lib/framework/shell.dart",
    "lib/framework/theme/colors.dart",
    "lib/framework/theme/shadows.dart",
    "lib/framework/theme/typography.dart",
    "lib/framework/theme/view_configuration.dart",
    "lib/sky_tool",
    "pubspec.yaml",
  ]

  deps = [
    "//sky/services/testing:bindings",
  ]

  datadeps = [
    "//sky/engine/bindings",
  ]

  sdk_ext_directory = "$root_gen_dir/sky/bindings"
}
