# 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("//testing/test.gni")

group("cloud_print") {
  if (is_win) {
    public_deps = [
      "//cloud_print/virtual_driver/win/install:virtual_driver_setup",
      "//cloud_print/virtual_driver/win/port_monitor",
    ]

    # When compiling 32-bit, also reference the 64-bit driver for installing on
    # 64-bit systems.
    if (target_cpu == "x86" && current_cpu == "x86") {
      if (is_clang) {
        win64 = "//build/toolchain/win:win_clang_x64"
      } else {
        win64 = "//build/toolchain/win:x64"
      }
      public_deps += [ "//cloud_print/virtual_driver/win/port_monitor($win64)" ]
    }
  }
}

test("cloud_print_unittests") {
  sources = [
    "virtual_driver/win/port_monitor/port_monitor_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:run_all_unittests",
    "//cloud_print/virtual_driver/win/port_monitor:lib",
    "//testing/gmock",
    "//testing/gtest",
  ]

  libs = [ "secur32.lib" ]
}
