# 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")
import("//mojo/services/mojo_services.gni")

# TODO(johnmccutchan): Automate this.
# for i in `find lib/|grep mojom.dart|sort`;do echo "  \"$i\",";done
bindings_sources = [
  "lib/activity/activity.mojom.dart",
  "lib/authentication/authentication.mojom.dart",
  "lib/contacts/contacts.mojom.dart",
  "lib/http_server/http_request.mojom.dart",
  "lib/http_server/http_response.mojom.dart",
  "lib/http_server/http_server_factory.mojom.dart",
  "lib/http_server/http_server.mojom.dart",
  "lib/icu_data/icu_data.mojom.dart",
  "lib/input/input.mojom.dart",
  "lib/keyboard/keyboard.mojom.dart",
  "lib/mojo/asset_bundle/asset_bundle.mojom.dart",
  "lib/mojo/authenticating_url_loader_interceptor_meta_factory.mojom.dart",
  "lib/mojo/camera.mojom.dart",
  "lib/mojo/clipboard.mojom.dart",
  "lib/mojo/command_buffer.mojom.dart",
  "lib/mojo/content_handler.mojom.dart",
  "lib/mojo/context_provider.mojom.dart",
  "lib/mojo/cookie_store.mojom.dart",
  "lib/mojo/device_info.mojom.dart",
  "lib/mojo/display.mojom.dart",
  "lib/mojo/files/directory.mojom.dart",
  "lib/mojo/files/file.mojom.dart",
  "lib/mojo/files/files.mojom.dart",
  "lib/mojo/files/ioctl.mojom.dart",
  "lib/mojo/files/ioctl_terminal.mojom.dart",
  "lib/mojo/files/types.mojom.dart",
  "lib/mojo/geocoder.mojom.dart",
  "lib/mojo/geometry.mojom.dart",
  "lib/mojo/gfx/composition/compositor.mojom.dart",
  "lib/mojo/gfx/composition/hit_tests.mojom.dart",
  "lib/mojo/gfx/composition/nodes.mojom.dart",
  "lib/mojo/gfx/composition/renderers.mojom.dart",
  "lib/mojo/gfx/composition/resources.mojom.dart",
  "lib/mojo/gfx/composition/scenes.mojom.dart",
  "lib/mojo/gfx/composition/scene_token.mojom.dart",
  "lib/mojo/gfx/composition/scheduling.mojom.dart",
  "lib/mojo/gpu_capabilities.mojom.dart",
  "lib/mojo/gpu.mojom.dart",
  "lib/mojo/host_resolver.mojom.dart",
  "lib/mojo/http_connection.mojom.dart",
  "lib/mojo/http_message.mojom.dart",
  "lib/mojo/http_server.mojom.dart",
  "lib/mojo/input_event_constants.mojom.dart",
  "lib/mojo/input_events.mojom.dart",
  "lib/mojo/input_key_codes.mojom.dart",
  "lib/mojo/location.mojom.dart",
  "lib/mojo/location_service.mojom.dart",
  "lib/mojo/native_viewport.mojom.dart",
  "lib/mojo/navigation.mojom.dart",
  "lib/mojo/net_address.mojom.dart",
  "lib/mojo/network_service.mojom.dart",
  "lib/mojo/quads.mojom.dart",
  "lib/mojo/service_registry.mojom.dart",
  "lib/mojo/sharing.mojom.dart",
  "lib/mojo/surface_id.mojom.dart",
  "lib/mojo/surfaces.mojom.dart",
  "lib/mojo/tcp_bound_socket.mojom.dart",
  "lib/mojo/tcp_connected_socket.mojom.dart",
  "lib/mojo/tcp_server_socket.mojom.dart",
  "lib/mojo/terminal/terminal_client.mojom.dart",
  "lib/mojo/terminal/terminal.mojom.dart",
  "lib/mojo/udp_socket.mojom.dart",
  "lib/mojo/ui/layouts.mojom.dart",
  "lib/mojo/ui/view_manager.mojom.dart",
  "lib/mojo/ui/view_provider.mojom.dart",
  "lib/mojo/ui/views.mojom.dart",
  "lib/mojo/ui/view_trees.mojom.dart",
  "lib/mojo/url_loader_interceptor.mojom.dart",
  "lib/mojo/url_loader.mojom.dart",
  "lib/mojo/url_response_disk_cache.mojom.dart",
  "lib/mojo/viewport_parameter_listener.mojom.dart",
  "lib/mojo/web_socket.mojom.dart",
  "lib/native_support/process.mojom.dart",
  "lib/nfc/nfc.mojom.dart",
  "lib/notifications/notifications.mojom.dart",
  "lib/prediction/prediction.mojom.dart",
  "lib/sensors/sensors.mojom.dart",
  "lib/speech_recognizer/speech_recognizer.mojom.dart",
  "lib/tracing/tracing.mojom.dart",
  "lib/vsync/vsync.mojom.dart",
]

dart_pkg("mojo_services") {
  sources = [
              "CHANGELOG.md",
              "README.md",
              "pubspec.yaml",
            ] + bindings_sources

  deps = [
    "//mojo/public/dart",
    "//mojo/services",
  ]
}
