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

group("all_tests") {
  testonly = true
}

group("all") {
  testonly = true

  deps = []

  if (is_win) {
    deps += [ ":remoting_breakpad_tester" ]
  }

  if (enable_nacl) {
    deps += [ "//remoting/tools/javascript_key_tester" ]
  }
}

if (is_win) {
  executable("remoting_breakpad_tester") {
    deps = [
      "//base",
      "//build/win:default_exe_manifest",
      "//remoting/host",
    ]

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

    sources = [
      "breakpad_tester_win.cc",
    ]
  }
}
