# Copyright 2016 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("//services/shell/public/cpp/service.gni")
import("//services/shell/public/service_manifest.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//tools/grit/repack.gni")

source_set("lib") {
  sources = [
    "quick_launch.cc",
    "quick_launch.h",
  ]

  deps = [
    "//base",
    "//mash/public/interfaces",
    "//mojo/public/cpp/bindings",
    "//services/catalog/public/interfaces",
    "//services/shell/public/cpp",
    "//services/shell/public/interfaces",
    "//services/tracing/public/cpp",
    "//ui/views",
    "//ui/views/mus:for_mojo_application",
    "//url",
  ]
}

service("quick_launch") {
  sources = [
    "main.cc",
  ]

  deps = [
    ":lib",
    "//services/shell/public/cpp",
    "//ui/views/mus:for_mojo_application",
  ]

  resources = [ "$root_out_dir/views_mus_resources.pak" ]

  data_deps = [
    ":manifest",
    "//services/ui",
  ]
}

service_manifest("manifest") {
  name = "quick_launch"
  source = "manifest.json"
}
