# 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("//services/catalog/public/tools/catalog.gni")
import("//testing/test.gni")

group("example") {
  testonly = true

  deps = [
    "//mash/example/views_examples",
    "//mash/example/window_type_launcher",
    "//mash/runner",
    "//mash/simple_wm",
  ]

  if (is_chromeos) {
    deps += [ "//ash:ash_service" ]
  }
}

catalog("catalog") {
  standalone_services = [
    "//mash/example/views_examples:manifest",
    "//mash/example/window_type_launcher:manifest",
    "//mash/simple_wm:manifest",
  ]
}
