# 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("//remoting/build/config/remoting_build.gni")

source_set("security_key") {
  sources = [
    "security_key_auth_handler.h",
    "security_key_auth_handler_posix.cc",
    "security_key_auth_handler_win.cc",
    "security_key_extension.cc",
    "security_key_extension.h",
    "security_key_extension_session.cc",
    "security_key_extension_session.h",
    "security_key_ipc_client.cc",
    "security_key_ipc_client.h",
    "security_key_ipc_constants.cc",
    "security_key_ipc_constants.h",
    "security_key_ipc_server.cc",
    "security_key_ipc_server.h",
    "security_key_ipc_server_impl.cc",
    "security_key_ipc_server_impl.h",
    "security_key_message.cc",
    "security_key_message.h",
    "security_key_message_handler.cc",
    "security_key_message_handler.h",
    "security_key_message_reader.h",
    "security_key_message_reader_impl.cc",
    "security_key_message_reader_impl.h",
    "security_key_message_writer.h",
    "security_key_message_writer_impl.cc",
    "security_key_message_writer_impl.h",
    "security_key_socket.cc",
    "security_key_socket.h",
  ]

  deps = [
    "//mojo/edk/system",
    "//remoting/proto",
    "//third_party/webrtc/modules/desktop_capture",
  ]
}

source_set("main") {
  defines = [ "HOST_IMPLEMENTATION" ]

  if (is_win) {
    defines += host_predefines
  }

  sources = [
    "remote_security_key_main.cc",
    "remote_security_key_main.h",
  ]
}

if (is_win) {
  executable("remote_security_key") {
    configs += [ "//build/config/compiler:wexit_time_destructors" ]

    defines = host_predefines + [ "BINARY=BINARY_REMOTE_SECURITY_KEY" ]

    deps = [
      "//build/win:default_exe_manifest",
      "//remoting/host/win:remoting_core",
      "//remoting/host/win:remoting_windows_resources",
    ]

    sources = [
      "$root_gen_dir/remoting/version.rc",
      "remote_security_key_entry_point.cc",
    ]
  }
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "security_key_auth_handler_posix_unittest.cc",
    "security_key_auth_handler_win_unittest.cc",
    "security_key_extension_session_unittest.cc",
    "security_key_ipc_client_unittest.cc",
    "security_key_ipc_server_unittest.cc",
    "security_key_message_handler_unittest.cc",
    "security_key_message_reader_impl_unittest.cc",
    "security_key_message_writer_impl_unittest.cc",
  ]

  public_deps = [
    ":test_support",
  ]
  deps = [
    "//mojo/edk/test:test_support",
  ]
}

static_library("test_support") {
  testonly = true

  sources = [
    "fake_security_key_ipc_client.cc",
    "fake_security_key_ipc_client.h",
    "fake_security_key_ipc_server.cc",
    "fake_security_key_ipc_server.h",
    "fake_security_key_message_reader.cc",
    "fake_security_key_message_reader.h",
    "fake_security_key_message_writer.cc",
    "fake_security_key_message_writer.h",
  ]

  deps = [
    "//remoting/proto",
    "//testing/gtest",
  ]

  public_deps = [
    "//testing/gmock",
    "//third_party/protobuf:protobuf_lite",
    "//third_party/webrtc/modules/desktop_capture",
  ]
}
