# Copyright 2022 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/images/network-conformance/assemble_network_conformance_system.gni")

assemble_network_conformance_system("network-conformance-base") {
  additional_base_packages = []
}

if (is_host) {
  host_test_data("network-conformance-base-test-data") {
    out_dir = get_label_info(":anything($target_toolchain)", "target_out_dir")
    sources =
        [ "${out_dir}/network-conformance-base/network-conformance-base.zbi" ]
    deps = [ ":network-conformance-base($target_toolchain)" ]
  }
}
