# 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",
    "sky",
  ]

  if (is_linux) {
    deps += [ "python" ]
  }

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

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

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