# 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/ui.gni")

group("mojo") {
  # Meta-target, don't link into production code.
  testonly = true
  deps = [
    ":tests",
    "//mojo/common",
  ]

  if (!(is_linux && current_cpu == "x86")) {
    # TODO(GYP): Figure out if this needs to be supported. Right now
    # it won't work on x86 official builds because it needs stuff in the
    # sysroot that doesn't exist.
    deps += [ "//mojo/public" ]
  }

  if (is_android) {
    deps += [ "//mojo/android" ]
  }

  deps += [ "//services/shell:all" ]
}

group("tests") {
  testonly = true
  deps = [
    "//ipc:ipc_tests",
    "//mojo/common:mojo_common_unittests",
    "//mojo/converters/blink:blink_converters_unittests",
    "//mojo/edk/js/test:js_integration_tests",
    "//mojo/edk/js/test:js_unittests",
    "//mojo/edk/system:mojo_message_pipe_perftests",
    "//mojo/edk/system:mojo_system_unittests",
    "//mojo/edk/test:mojo_public_bindings_perftests",
    "//mojo/edk/test:mojo_public_bindings_unittests",
    "//mojo/edk/test:mojo_public_system_perftests",
    "//mojo/edk/test:mojo_public_system_unittests",
    "//services/shell/public/cpp/tests:mojo_public_application_unittests",
    "//services/shell/runner/host:mojo_runner_host_unittests",
    "//services/shell/tests",
  ]
}
