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

library("zxcrypt-dev") {
  shared = true
  static = true
  sources = [
    "ddk-volume.cpp",
    "volume.cpp",
  ]

  public_deps = [
    # <zxcrypt/volume.h> has #include <crypto/aead.h> (among others).
    "$zx/system/ulib/crypto:headers",

    # <zxcrypt/ddk-volume.h> has #include <ddk/device.h>.
    "$zx/system/ulib/ddk:headers",
  ]

  configs += [ "$zx/public/gn/config:integer-paranoia" ]

  # To minimize the set of libraries that we depend on that need to be loaded
  # from /boot/lib in early boot, we statically link most of our dependencies.
  deps = [
    "$zx/system/banjo/ddk.protocol.block",
    "$zx/system/banjo/ddk.protocol.block.volume",
    "$zx/system/ulib/crypto:zircon-crypto.static",
    "$zx/system/ulib/ddk",
    "$zx/system/ulib/driver",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/fs-management:headers",  # only used for zxcrypt_magic
    "$zx/system/ulib/sync",
    "$zx/system/ulib/zircon",
    "$zx/system/ulib/zircon-internal",
    "$zx/system/ulib/zx",
    "$zx/third_party/ulib/uboringssl",
  ]
  configs += [ "$zx/public/gn/config:static-libc++" ]
}

library("zxcrypt-fdio") {
  shared = true
  sources = [
    "fdio-volume.cpp",
    "volume.cpp",
  ]
  public_deps = [
    # <zxcrypt/volume.h> has #include <crypto/aead.h> (among others).
    "$zx/system/ulib/crypto:headers",
  ]
  configs += [ "$zx/public/gn/config:integer-paranoia" ]
  deps = [
    "$zx/system/fidl/fuchsia-device:c",
    "$zx/system/fidl/fuchsia-hardware-block:c",
    "$zx/system/fidl/fuchsia-hardware-block-volume:c",
    "$zx/system/fidl/fuchsia-hardware-zxcrypt:c",
    "$zx/system/ulib/crypto",
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/fdio",
    "$zx/system/ulib/fs-management:headers",  # only used for zxcrypt_magic
    "$zx/system/ulib/fzl",
    "$zx/system/ulib/kms-stateless",
    "$zx/system/ulib/ramdevice-client:static",
    "$zx/system/ulib/sync",
    "$zx/system/ulib/zircon",
    "$zx/system/ulib/zircon-internal",
    "$zx/system/ulib/zx",
    "$zx/third_party/ulib/uboringssl",
  ]
  configs += [ "$zx/public/gn/config:static-libc++" ]
}
