# 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/prebuilt_binaries.gni")

# The //prebuilt directory contains only the binary artifacts managed by
# jiri.  So this directory represents it in the build.

attributes = read_file("//.jiri_root/attributes.json", "json")
debug_symbols = false
foreach(attribute, attributes) {
  if (string_replace(attribute, "debug-symbols", "bogus") != attribute) {
    debug_symbols = true
  }
}

if (debug_symbols) {
  prebuilt_binaries("prebuilt") {
    testonly = true
    build_id_dir = "//prebuilt/.build-id"
  }
} else {
  group("prebuilt") {
    testonly = true
  }
}
