# 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("mojo.gni")

group("public") {
  # Meta-target, don't link into production code.
  testonly = true
  deps = [
    ":libmojo_sdk",
    ":sdk",
    "cpp/application:standalone",
    "cpp/bindings",
    "cpp/environment:standalone",
    "cpp/utility",
    "interfaces/bindings/tests:test_interfaces",
  ]

  if (is_linux && !is_fnl) {
    deps += [
      "python",
      "tools/bindings",
    ]
  }

  if (is_android) {
    deps += [
      "java:application",
      "java:bindings",
      "java:system",
    ]
  }
}

group("sdk") {
  deps = [
    "c:system",
    "cpp/application:standalone",
    "cpp/bindings",
    "cpp/environment:standalone",
    "cpp/utility",
    "interfaces/application",
    "interfaces/bindings",
    "js",
  ]

  if (mojo_use_network_in_sdk) {
    deps += [ "interfaces/network" ]
  }
}

static_library("libmojo_sdk") {
  complete_static_lib = true
  deps = [
    ":sdk",
  ]
}
