# 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("rot13") {
  public_deps = [
    "//src/rot13:rot13-example",
    "//src/rot13/client:rot13_client",
    "//src/rot13/server:rot13_server",
  ]
}

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

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

fuchsia_package("rot13-example") {
  deps = [
    ":rot13_realm",
    "client:client_component",
    "server:server_component",
  ]
}
