# Copyright 2023 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.

# At the time of writing, we assume this GN will only be used from Fuchsia
# where the vboot_reference repo lives at //third_party/vboot_reference
# and build root is the Fuchsia repo.
import("//build/cpp/sdk_source_set.gni")
config("includes") {
  include_dirs = [ "include" ]
}

sdk_source_set("headers") {
  sdk_name = "vboot_firmware_headers"
  category = "experimental"
  sources = [
    "include/bmpblk_header.h",
    "include/gbb_access.h",
    "include/gpt.h",
    "include/gpt_misc.h",
    "include/region.h",
    "include/tlcl.h",
    "include/tpm1_tss_constants.h",
    "include/tpm2_marshaling.h",
    "include/tpm2_tss_constants.h",
    "include/tss_constants.h",
    "include/vb2_api.h",
    "include/vboot_api.h",
    "include/vboot_nvstorage.h",

    # The following headers are currently being included by Fuchsia sources,
    # can't include them now. Otherwise it causes "Include not allowed." error
    #"include/gbb_header.h",
    #"include/vboot_struct.h",
  ]
  if (is_kernel) {
    public_deps = [
      "//zircon/kernel/lib/libc",
    ]
  }

  public = sources
  public_configs = [ ":includes" ]
}
