# 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.
import("//third_party/openweave-core/config.gni")

source_set("WeaveSupport") {
  top_builddir = rebase_path("//third_party/openweave-core")
  sources = [
    "$top_builddir/src/lib/support/ASN1Error.cpp",
    "$top_builddir/src/lib/support/ASN1OID.cpp",
    "$top_builddir/src/lib/support/ASN1Reader.cpp",
    "$top_builddir/src/lib/support/ASN1Writer.cpp",
    "$top_builddir/src/lib/support/Base64.cpp",
    "$top_builddir/src/lib/support/ErrorStr.cpp",
    "$top_builddir/src/lib/support/FibonacciUtils.cpp",
    "$top_builddir/src/lib/support/MathUtils.cpp",
    "$top_builddir/src/lib/support/NestCerts.cpp",
    "$top_builddir/src/lib/support/NonProductionMarker.cpp",
    "$top_builddir/src/lib/support/PersistedCounter.cpp",
    "$top_builddir/src/lib/support/ProfileStringSupport.cpp",
    "$top_builddir/src/lib/support/RandUtils.cpp",
    "$top_builddir/src/lib/support/SerialNumberUtils.cpp",
    "$top_builddir/src/lib/support/SerializationUtils.cpp",
    "$top_builddir/src/lib/support/StatusReportStr.cpp",
    "$top_builddir/src/lib/support/TimeUtils.cpp",
    "$top_builddir/src/lib/support/WeaveCounter.cpp",
    "$top_builddir/src/lib/support/WeaveNames.cpp",
    "$top_builddir/src/lib/support/crypto/AESBlockCipher-AESNI.cpp",
    "$top_builddir/src/lib/support/crypto/AESBlockCipher-OpenSSL.cpp",
    "$top_builddir/src/lib/support/crypto/AESBlockCipher-mbedTLS.cpp",
    "$top_builddir/src/lib/support/crypto/CTRMode.cpp",
    "$top_builddir/src/lib/support/crypto/DRBG.cpp",
    "$top_builddir/src/lib/support/crypto/EllipticCurve-OpenSSL.cpp",
    "$top_builddir/src/lib/support/crypto/EllipticCurve-uECC.cpp",
    "$top_builddir/src/lib/support/crypto/EllipticCurve.cpp",
    "$top_builddir/src/lib/support/crypto/HKDF.cpp",
    "$top_builddir/src/lib/support/crypto/HMAC.cpp",
    "$top_builddir/src/lib/support/crypto/HashAlgos-MinCrypt.cpp",
    "$top_builddir/src/lib/support/crypto/HashAlgos-OpenSSL.cpp",
    "$top_builddir/src/lib/support/crypto/HashAlgos-mbedTLS.cpp",
    "$top_builddir/src/lib/support/crypto/WeaveCrypto-OpenSSL.cpp",
    "$top_builddir/src/lib/support/crypto/WeaveCrypto.cpp",
    "$top_builddir/src/lib/support/crypto/WeaveRNG-NestDRBG.cpp",
    "$top_builddir/src/lib/support/crypto/WeaveRNG-OpenSSL.cpp",
    "$top_builddir/src/lib/support/logging/DecodedIPPacket.cpp",
    "$top_builddir/src/lib/support/logging/WeaveLogging.cpp",
    "$top_builddir/src/lib/support/nlargparser.cpp",
  ]
  if (weave_with_verhoeff) {
    sources += [
      "$top_builddir/src/lib/support/pairing-code/KryptonitePairingCodeUtils.cpp",
      "$top_builddir/src/lib/support/pairing-code/NevisPairingCodeUtils.cpp",
      "$top_builddir/src/lib/support/pairing-code/PairingCodeUtils.cpp",
      "$top_builddir/src/lib/support/verhoeff/Verhoeff.cpp",
      "$top_builddir/src/lib/support/verhoeff/Verhoeff10.cpp",
      "$top_builddir/src/lib/support/verhoeff/Verhoeff16.cpp",
      "$top_builddir/src/lib/support/verhoeff/Verhoeff32.cpp",
      "$top_builddir/src/lib/support/verhoeff/Verhoeff36.cpp",
    ]
  }
  if (weave_with_nlfaultinjection) {
    sources += [ "$top_builddir/src/lib/support/WeaveFaultInjection.cpp" ]
  }
  configs += [ "//third_party/openweave-core/src/include:fuchsia" ]
  public_deps = [ "//third_party/openweave-core/src/include:common" ]
}
