# Copyright 2014 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/features.gni")
import("//printing/buildflags/buildflags.gni")

assert(!is_chromeos)

static_library("service") {
  sources = [
    "cloud_print/cdd_conversion_win.cc",
    "cloud_print/cdd_conversion_win.h",
    "cloud_print/cloud_print_auth.cc",
    "cloud_print/cloud_print_auth.h",
    "cloud_print/cloud_print_connector.cc",
    "cloud_print/cloud_print_connector.h",
    "cloud_print/cloud_print_message_handler.cc",
    "cloud_print/cloud_print_message_handler.h",
    "cloud_print/cloud_print_proxy.cc",
    "cloud_print/cloud_print_proxy.h",
    "cloud_print/cloud_print_proxy_backend.cc",
    "cloud_print/cloud_print_proxy_backend.h",
    "cloud_print/cloud_print_service_helpers.cc",
    "cloud_print/cloud_print_service_helpers.h",
    "cloud_print/cloud_print_token_store.cc",
    "cloud_print/cloud_print_token_store.h",
    "cloud_print/cloud_print_url_fetcher.cc",
    "cloud_print/cloud_print_url_fetcher.h",
    "cloud_print/cloud_print_wipeout.cc",
    "cloud_print/cloud_print_wipeout.h",
    "cloud_print/connector_settings.cc",
    "cloud_print/connector_settings.h",
    "cloud_print/job_status_updater.cc",
    "cloud_print/job_status_updater.h",
    "cloud_print/print_system.cc",
    "cloud_print/print_system.h",
    "cloud_print/print_system_win.cc",
    "cloud_print/printer_job_handler.cc",
    "cloud_print/printer_job_handler.h",
    "cloud_print/printer_job_queue_handler.cc",
    "cloud_print/printer_job_queue_handler.h",
    "net/in_process_network_connection_tracker.cc",
    "net/in_process_network_connection_tracker.h",
    "net/service_url_request_context_getter.cc",
    "net/service_url_request_context_getter.h",
    "service_ipc_server.cc",
    "service_ipc_server.h",
    "service_main.cc",
    "service_process.cc",
    "service_process.h",
    "service_process_prefs.cc",
    "service_process_prefs.h",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]

  deps = [
    "//base",
    "//chrome:strings",
    "//chrome/common",
    "//chrome/services/printing/public/mojom",
    "//components/cloud_devices/common",
    "//components/network_session_configurator/browser",
    "//components/printing/common",
    "//content/public/app:service_manifests",
    "//google_apis",
    "//jingle:notifier",
    "//mojo/public/cpp/platform",
    "//mojo/public/cpp/system",
    "//net",
    "//printing",
    "//services/network/public/cpp",
    "//skia",
    "//third_party/webrtc_overrides:webrtc_component",
  ]

  public_deps = [
    "//chrome/common:service_process_mojom",
  ]

  if (use_cups) {
    sources += [ "cloud_print/print_system_cups.cc" ]
    configs += [ "//printing:cups" ]
  } else if (is_win) {
    sources += [
      "service_utility_process_host.cc",
      "service_utility_process_host.h",
      "service_utility_process_host_receiver_bindings.cc",
    ]
  }
}
