chromium/mojo/BUILD.gn

# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/buildflag_header.gni")
import("//build/config/ui.gni")
import("//mojo/features.gni")
import("//testing/test.gni")

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

  if (!((is_linux || is_chromeos) && current_cpu == "x86")) {
    deps += [ "//mojo/public" ]
  }

  if (is_android) {
    deps += [ "//mojo/public/java/system" ]
  }

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

buildflag_header("buildflags") {
  header = "buildflags.h"
  flags = [
    "MOJO_USE_APPLE_CHANNEL=$mojo_use_apple_channel",
    "MOJO_SUPPORT_LEGACY_CORE=$mojo_support_legacy_core",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":mojo_perftests",
    ":mojo_unittests",
    "//mojo/public/tools:mojo_python_unittests",
    "//mojo/public/tools/bindings/tests:build_ts",
    "//third_party/ipcz/src:ipcz_tests",
  ]

  if (!is_ios) {
    deps += [
      "//ipc:ipc_tests",
      "//services/service_manager/tests",
    ]
  }
}

test("mojo_unittests") {
  deps = [
    "//mojo/core:test_sources",
    "//mojo/core/test:run_all_unittests",
    "//mojo/public/cpp/base:tests",
    "//mojo/public/cpp/bindings/tests",
    "//mojo/public/cpp/platform/tests",
    "//mojo/public/cpp/system/tests",
    "//mojo/public/js/ts/bindings/tests",
  ]

  if (is_linux && mojo_support_legacy_core) {
    deps += [ "//mojo/proxy:tests" ]
  }
}

test("mojo_perftests") {
  sources = []
  if (mojo_support_legacy_core) {
    sources += [ "//mojo/core/handle_table_perftest.cc" ]
  }
  deps = [
    "//mojo/core/test:run_all_perftests",
    "//mojo/core/test:test_support",
    "//mojo/public/c/system/tests:perftests",
    "//mojo/public/cpp/bindings/tests:perftests",
    "//testing/perf",
  ]

  if (!is_ios) {
    sources += [ "//mojo/core/message_pipe_perftest.cc" ]

    deps += [
      "//base",
      "//base/test:test_support",
      "//mojo/core:embedder_internal",
      "//mojo/core/embedder",
      "//testing/gtest",
    ]
  }
}