chromium/remoting/host/webauthn/BUILD.gn

# Copyright 2021 The Chromium Authors
# 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("webauthn") {
  sources = [
    "remote_webauthn_caller_security_utils.cc",
    "remote_webauthn_caller_security_utils.h",
    "remote_webauthn_constants.cc",
    "remote_webauthn_constants.h",
    "remote_webauthn_delegated_state_change_notifier.cc",
    "remote_webauthn_delegated_state_change_notifier.h",
    "remote_webauthn_extension_notifier.cc",
    "remote_webauthn_extension_notifier.h",
    "remote_webauthn_message_handler.cc",
    "remote_webauthn_message_handler.h",
    "remote_webauthn_native_messaging_host.cc",
    "remote_webauthn_native_messaging_host.h",
    "remote_webauthn_state_change_notifier.h",
  ]

  deps = [
    "//base",
    "//extensions/browser/api/messaging:native_messaging",
    "//remoting/host:chromoting_host_services_client",
    "//remoting/host/base",
    "//remoting/host/mojom",
    "//remoting/host/native_messaging",
    "//remoting/proto",
    "//remoting/protocol",
  ]

  if (is_win) {
    deps += [ "//remoting/host/win:trust_util" ]
  }
}

source_set("remote_webauthn_main_headers") {
  sources = [ "remote_webauthn_main.h" ]
  deps = [ "//remoting/host:host_main_headers" ]
}

source_set("main") {
  configs += [ "//remoting/build/config:host_implementation" ]

  sources = [ "remote_webauthn_main.cc" ]
  deps = [
    ":remote_webauthn_main_headers",
    ":webauthn",
    "//base",
    "//mojo/core/embedder:embedder",
    "//remoting/base",
    "//remoting/base:breakpad",
    "//remoting/host:chromoting_host_services_client",
    "//remoting/host:common_headers",
    "//remoting/host/base",
    "//remoting/host/native_messaging",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "remote_webauthn_extension_notifier_unittest.cc",
    "remote_webauthn_message_handler_unittest.cc",
    "remote_webauthn_native_messaging_host_unittest.cc",
  ]

  deps = [
    ":webauthn",
    "//base",
    "//base/test:test_support",
    "//extensions/browser/api/messaging:native_messaging",
    "//mojo/public/cpp/bindings",
    "//mojo/public/cpp/platform",
    "//remoting/base",
    "//remoting/host:test_support",
    "//remoting/host/mojom",
    "//remoting/host/native_messaging:native_messaging",
    "//remoting/protocol:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

executable("remote_webauthn") {
  sources = [ "remote_webauthn_entry_point.cc" ]

  deps = [ ":remote_webauthn_main_headers" ]

  if (is_win || is_linux) {
    deps += [ "//remoting/host:remoting_core" ]
  } else {
    deps += [ ":main" ]
  }

  if (is_win) {
    sources += [ "$root_gen_dir/remoting/version.rc" ]

    defines =
        host_predefines + [ "REMOTING_HOST_BINARY=BINARY_REMOTE_WEBAUTHN" ]

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