# Copyright 2020 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("//build/toolchain/variant_shared_library_redirect.gni")

variant_shared_library_redirect("lowpan_driver_common") {
  library = "lowpan_driver_common"
}

variant_shared_library_redirect("spinel_pack") {
  library = "spinel_pack"
}

group("lib") {
  deps = [
    ":lowpan_driver_common",
    ":spinel_pack",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "lowpan_driver_common:tests",
    "spinel_pack:tests",
  ]
}
