# Copyright 2019 The Fuchsia 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("//third_party/fuchsia-sdk/build/component.gni")
import("//third_party/fuchsia-sdk/build/package.gni")

group("calculator") {
  public_deps = [
    "//src/calculator:calculator-example",
    "//src/calculator/client",
    "//src/calculator/engine",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "//src/calculator/engine:tests",
  ]
}

fuchsia_component("calculator_realm") {
  manifest = "meta/calculator_realm.cml"
}

fuchsia_package("calculator-example") {
  deps = [
    ":calculator_realm",
    "client:component",
    "engine:component",
  ]
}