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