# 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")

# Public compilation flags for external users of OpenWeave.
config("public") {
  include_dirs = [ "$target_gen_dir" ]
  cflags = [ "-includeBuildConfig.h" ]
}

# Common compilation flags for all components in OpenWeave.
config("fuchsia") {
  configs = [ ":public" ]
  # Temporarily adding ignore cases for openweave warnings.
  # TODO(fxb/46070): Resolve these warnings in mainline.
  cflags = [
    # Should be removable when WARM thread routing is enabled.
    "-Wno-unused-const-variable",
    "-Wno-unused-function",
  ]
}

# OpenWeave installs headers into namespaces that don't map directly to their
# location in the source tree. For instance, BLE headers live in src/ble, but
# are placed in include/BleLayer at compile-time. In order to enable this, we
# provide a template here to perform this conversion.
#
# Expected usage:
#
# openweave_headers("BleLayer") {
#   source_dirstem = "relative/path/from/openweave/root" # e.g. 'src/ble'
#   dest_dirstem = "relative/include/path" # e.g. 'BleLayer'
#   sources = [
#     "Ble.h",
#     "BleLayer.h",
#     ...
#   ]
# }
#
# The above will auto-generate a target of the name 'BleLayer_headers', that
# will copy src/ble/Ble.h => include/BleLayer/Ble.h. This target can now be
# used in dependencies.
template("openweave_headers") {
  root_dirstem = rebase_path("//third_party/openweave-core")
  copy(target_name + "_headers") {
    sources = []
    foreach(source, invoker.sources) {
      sources += [ root_dirstem + "/" + invoker.source_dirstem + "/" + source ]
    }
    outputs = [ "$target_gen_dir/" + invoker.dest_dirstem + "/{{source_file_part}}" ]
  }
}

openweave_headers("BuildConfig") {
  source_dirstem = "build/config/fuchsia"
  dest_dirstem = "."
  sources = [
    "BuildConfig.h",
  ]
}

openweave_headers("ProjectConfig") {
  source_dirstem = "build/config/fuchsia"
  dest_dirstem = "."
  sources = [
    "BleProjectConfig.h",
    "SystemProjectConfig.h",
    "WarmProjectConfig.h",
    "WeaveProjectConfig.h",
  ]
}

# BleLayer
openweave_headers("BleLayer") {
  source_dirstem = "src/ble"
  dest_dirstem = "BleLayer"
  sources = [
    "BLEEndPoint.h",
    "Ble.h",
    "BleApplicationDelegate.h",
    "BleConfig.h",
    "BleError.h",
    "BleLayer.h",
    "BlePlatformDelegate.h",
    "BleUUID.h",
    "WoBle.h",
    "WeaveBleServiceData.h",
  ]
}

# InetLayer
openweave_headers("InetLayer") {
  source_dirstem = "src/inet"
  dest_dirstem = "InetLayer"
  sources = [
    "EndPointBasis.h",
    "IANAConstants.h",
    "Inet.h",
    "InetBuffer.h",
    "InetConfig.h",
    "InetError.h",
    "InetInterface.h",
    "InetLayer.h",
    "InetLayerBasis.h",
    "InetLayerEvents.h",
    "InetTimer.h",
    "IPAddress.h",
    "IPEndPointBasis.h",
    "IPPrefix.h",
    "InetFaultInjection.h",
  ]
  if (inet_want_endpoint_dns) {
    sources += [ "DNSResolver.h" ]
  }
  if (inet_want_endpoint_raw) {
    sources += [ "RawEndPoint.h" ]
  }
  if (inet_want_endpoint_tcp) {
    sources += [ "TCPEndPoint.h" ]
  }
  if (inet_want_endpoint_udp) {
    sources += [ "UDPEndPoint.h" ]
  }
  if (inet_want_endpoint_tun) {
    sources += [ "TunEndPoint.h" ]
  }
  if (weave_system_config_use_sockets) {
    if (inet_want_endpoint_dns) {
      if (inet_config_enable_async_dns_sockets) {
        sources += [ "AsyncDNSResolverSockets.h" ]
      }
    }
  }
}

# SystemLayer
openweave_headers("SystemLayer") {
  source_dirstem = "src/system"
  dest_dirstem = "SystemLayer"
  sources = [
    "SystemAlignSize.h",
    "SystemClock.h",
    "SystemConfig.h",
    "SystemError.h",
    "SystemEvent.h",
    "SystemFaultInjection.h",
    "SystemStats.h",
    "SystemLayer.h",
    "SystemMutex.h",
    "SystemObject.h",
    "SystemTimer.h",
    "SystemPacketBuffer.h",
  ]
}

# Warm
openweave_headers("Warm") {
  source_dirstem = "src/warm"
  dest_dirstem = "Warm"
  sources = [
    "Warm.h",
    "WarmConfig.h",
  ]
}

# Weave - Core
openweave_headers("WeaveCore") {
  source_dirstem = "src/lib/core"
  dest_dirstem = "Weave/Core"
  sources = [
    "HostPortList.h",
    "WeaveKeyIds.h",
    "WeaveBinding.h",
    "WeaveBDXConfig.h",
    "WeaveConfig.h",
    "WeaveCore.h",
    "WeaveDMConfig.h",
    "WeaveTimeConfig.h",
    "WeaveEncoding.h",
    "WeaveError.h",
    "WeaveEventLoggingConfig.h",
    "WeaveExchangeMgr.h",
    "WeaveFabricState.h",
    "WeaveGlobals.h",
    "WeaveMessageLayer.h",
    "WeaveSecurityMgr.h",
    "WeaveServerBase.h",
    "WeaveStats.h",
    "WeaveTLV.h",
    "WeaveTLVData.hpp",
    "WeaveTLVDebug.hpp",
    "WeaveTLVTags.h",
    "WeaveTLVTypes.h",
    "WeaveTLVUtilities.hpp",
    "WeaveCircularTLVBuffer.h",
    "WeaveVendorIdentifiers.hpp",
    "WeaveTunnelConfig.h",
    "WeaveWRMPConfig.h",
  ]
}

openweave_headers("WeaveCommon") {
  source_dirstem = "src/lib/schema/common"
  dest_dirstem = "Weave/Common"
  sources = [
    "ResourceTypeEnum.h",
  ]
}

# Weave - Support
openweave_headers("WeaveSupport_base") {
  source_dirstem = "src/lib/support"
  dest_dirstem = "Weave/Support"
  sources = [
    "ASN1.h",
    "ASN1Config.h",
    "ASN1Error.h",
    "ASN1Macros.h",
    "Base64.h",
    "CodeUtils.h",
    "ErrorStr.h",
    "FibonacciUtils.h",
    "FlagUtils.hpp",
    "ManagedNamespace.hpp",
    "MathUtils.h",
    "NLDLLUtil.h",
    "NestCerts.h",
    "PersistedCounter.h",
    "ProfileStringSupport.hpp",
    "RandUtils.h",
    "SerialNumberUtils.h",
    "SerializationUtils.h",
    "TimeUtils.h",
    "TraitEventUtils.h",
    "WeaveCounter.h",
    "WeaveFaultInjection.h",
    "WeaveNames.h",
    "nlargparser.hpp",
  ]
}

openweave_headers("WeaveSupport_ASN1OID") {
  source_dirstem = "build/config/fuchsia"
  dest_dirstem = "Weave/Support"
  sources = [
    "ASN1OID.h",
  ]
}

openweave_headers("WeaveSupport_crypto") {
  source_dirstem = "src/lib/support/crypto"
  dest_dirstem = "Weave/Support/crypto"
  sources = [
    "AESBlockCipher.h",
    "CTRMode.h",
    "DRBG.h",
    "EllipticCurve.h",
    "HKDF.h",
    "HMAC.h",
    "HashAlgos.h",
    "WeaveRNG.h",
    "WeaveCrypto.h",
  ]
}

openweave_headers("WeaveSupport_logging") {
  source_dirstem = "src/lib/support/logging"
  dest_dirstem = "Weave/Support/logging"
  sources = [
    "WeaveLogging.h",
    "DecodedIPPacket.h",
  ]
}

openweave_headers("WeaveSupport_verhoeff") {
  source_dirstem = "src/lib/support/verhoeff"
  dest_dirstem = "Weave/Support/verhoeff"
  sources = [
    "Verhoeff.h",
  ]
}

openweave_headers("WeaveSupport_pairing_code") {
  source_dirstem = "src/lib/support/pairing-code"
  dest_dirstem = "Weave/Support/pairing-code"
  sources = [
    "PairingCodeUtils.h",
  ]
}

openweave_headers("WeaveSupport_platform") {
  source_dirstem = "src/lib/support/platform"
  dest_dirstem = "Weave/Support/platform"
  sources = [
    "PersistedStorage.h",
  ]
}

group("WeaveSupport_headers") {
  deps = [
    ":WeaveSupport_base_headers",
    ":WeaveSupport_ASN1OID_headers",
    ":WeaveSupport_crypto_headers",
    ":WeaveSupport_logging_headers",
    ":WeaveSupport_verhoeff_headers",
    ":WeaveSupport_pairing_code_headers",
    ":WeaveSupport_platform_headers",
  ]
}

# Weave - Profiles
openweave_headers("WeaveProfiles_base") {
  source_dirstem = "src/lib/profiles"
  dest_dirstem = "Weave/Profiles"
  sources = [
    "ProfileCommon.h",
    "WeaveProfiles.h",
  ]
}

openweave_headers("WeaveProfiles_bulk_data_transfer_development") {
  source_dirstem = "src/lib/profiles/bulk-data-transfer/Development"
  dest_dirstem = "Weave/Profiles/bulk-data-transfer/Development"
  sources = [
    "BDXConstants.h",
    "BDXDelegate.h",
    "BDXManagedNamespace.hpp",
    "BDXMessages.h",
    "BDXNode.h",
    "BDXProtocol.h",
    "BDXTransferState.h",
    "BulkDataTransfer.h",
  ]
}

openweave_headers("WeaveProfiles_bulk_data_transfer") {
  source_dirstem = "src/lib/profiles/bulk-data-transfer"
  dest_dirstem = "Weave/Profiles/bulk-data-transfer"
  sources = [
    "BDXManagedNamespace.hpp",
    "BulkDataTransfer.h",
    "WeaveBdxDelegate.h",
  ]
}

openweave_headers("WeaveProfiles_common") {
  source_dirstem = "src/lib/profiles/common"
  dest_dirstem = "Weave/Profiles/common"
  sources = [
    "CommonProfile.h",
    "WeaveMessage.h",
  ]
}

openweave_headers("WeaveProfiles_data_management") {
  source_dirstem = "src/lib/profiles/data-management"
  dest_dirstem = "Weave/Profiles/data-management"
  sources = [
    "Binding.h",
    "ClientDataManager.h",
    "ClientNotifier.h",
    "DMClient.h",
    "DMConstants.h",
    "DMPublisher.h",
    "DataManagement.h",
    "ProfileDatabase.h",
    "ProtocolEngine.h",
    "PublisherDataManager.h",
    "TopicIdentifier.h",
    "WdmManagedNamespace.h",
    "MessageDef.h",
    "ViewClient.h",
    "TraitData.h",
    "TraitCatalog.h",
    "TraitPathStore.h",
    "SubscriptionEngine.h",
    "SubscriptionClient.h",
    "SubscriptionHandler.h",
    "NotificationEngine.h",
    "Command.h",
    "UpdateClient.h",
    "UpdateEncoder.h",
    "EventLogging.h",
    "EventLoggingTags.h",
    "EventLoggingTypes.h",
    "EventProcessor.h",
    "LogBDXUpload.h",
    "LoggingConfiguration.h",
    "LoggingManagement.h",
  ]
}

openweave_headers("WeaveProfiles_data_management_legacy") {
  source_dirstem = "src/lib/profiles/data-management/Legacy"
  dest_dirstem = "Weave/Profiles/data-management/Legacy"
  sources = [
    "Binding.h",
    "ClientDataManager.h",
    "ClientNotifier.h",
    "DMClient.h",
    "DMConstants.h",
    "DMPublisher.h",
    "DataManagement.h",
    "ProfileDatabase.h",
    "ProtocolEngine.h",
    "PublisherDataManager.h",
    "TopicIdentifier.h",
    "WdmManagedNamespace.h",
  ]
}

openweave_headers("WeaveProfiles_data_management_current") {
  source_dirstem = "src/lib/profiles/data-management/Current"
  dest_dirstem = "Weave/Profiles/data-management/Current"
  sources = [
    "DataManagement.h",
    "MessageDef.h",
    "ResourceIdentifier.h",
    "ViewClient.h",
    "TraitData.h",
    "TraitCatalog.h",
    "TraitPathStore.h",
    "SingleResourceTraitCatalog.h",
    "SingleResourceTraitCatalog.ipp",
    "SubscriptionEngine.h",
    "SubscriptionClient.h",
    "SubscriptionHandler.h",
    "NotificationEngine.h",
    "Command.h",
    "UpdateClient.h",
    "UpdateEncoder.h",
    "WdmManagedNamespace.h",
    "EventLogging.h",
    "EventLoggingTags.h",
    "EventLoggingTypes.h",
    "EventProcessor.h",
    "LogBDXUpload.h",
    "LoggingConfiguration.h",
    "LoggingManagement.h",
  ]
}

openweave_headers("WeaveProfiles_device_control") {
  source_dirstem = "src/lib/profiles/device-control"
  dest_dirstem = "Weave/Profiles/device-control"
  sources = [
    "DeviceControl.h",
  ]
}

openweave_headers("WeaveProfiles_device_description") {
  source_dirstem = "src/lib/profiles/device-description"
  dest_dirstem = "Weave/Profiles/device-description"
  sources = [
    "DeviceDescription.h"
  ]
}

openweave_headers("WeaveProfiles_echo") {
  source_dirstem = "src/lib/profiles/echo"
  dest_dirstem = "Weave/Profiles/echo"
  sources = [
    "WeaveEcho.h",
  ]
}

openweave_headers("WeaveProfiles_echo_current") {
  source_dirstem = "src/lib/profiles/echo/Current"
  dest_dirstem = "Weave/Profiles/echo/Current"
  sources = [
    "WeaveEcho.h",
  ]
}

openweave_headers("WeaveProfiles_echo_next") {
  source_dirstem = "src/lib/profiles/echo/Next"
  dest_dirstem = "Weave/Profiles/echo/Next"
  sources = [
    "WeaveEcho.h",
    "WeaveEchoClient.h",
    "WeaveEchoServer.h",
  ]
}

openweave_headers("WeaveProfiles_fabric_provisioning") {
  source_dirstem = "src/lib/profiles/fabric-provisioning"
  dest_dirstem = "Weave/Profiles/fabric-provisioning"
  sources = [
    "FabricProvisioning.h"
  ]
}

openweave_headers("WeaveProfiles_heartbeat") {
  source_dirstem = "src/lib/profiles/heartbeat"
  dest_dirstem = "Weave/Profiles/heartbeat"
  sources = [
    "WeaveHeartbeat.h",
  ]
}

openweave_headers("WeaveProfiles_locale") {
  source_dirstem = "src/lib/profiles/locale"
  dest_dirstem = "Weave/Profiles/locale"
  sources = [
    "LocaleProfile.hpp",
    "LocaleStatus.hpp",
    "LocaleTags.hpp",
  ]
}

openweave_headers("WeaveProfiles_network_provisioning") {
  source_dirstem = "src/lib/profiles/network-provisioning"
  dest_dirstem = "Weave/Profiles/network-provisioning"
  sources = [
    "NetworkInfo.h",
    "NetworkProvisioning.h",
  ]
}

openweave_headers("WeaveProfiles_security") {
  source_dirstem = "src/lib/profiles/security"
  dest_dirstem = "Weave/Profiles/security"
  sources = [
    "ApplicationKeysStructSchema.h",
    "ApplicationKeysTrait.h",
    "ApplicationKeysTraitDataSink.h",
    "WeaveAccessToken.h",
    "WeaveAppGroupGlobalIds.h",
    "WeaveApplicationKeys.h",
    "WeaveCASE.h",
    "WeaveCert.h",
    "WeaveDummyGroupKeyStore.h",
    "WeavePASE.h",
    "WeaveTAKE.h",
    "WeaveKeyExport.h",
    "WeaveKeyExportClient.h",
    "WeavePasscodes.h",
    "WeavePrivateKey.h",
    "WeaveProvBundle.h",
    "WeaveProvHash.h",
    "WeaveSecurity.h",
    "WeaveSecurityDebug.h",
    "WeaveSig.h",
  ]
}

openweave_headers("WeaveProfiles_service_directory") {
  source_dirstem = "src/lib/profiles/service-directory"
  dest_dirstem = "Weave/Profiles/service-directory"
  sources = [
    "ServiceDirectory.h",
  ]
}

openweave_headers("WeaveProfiles_service_provisioning") {
  source_dirstem = "src/lib/profiles/service-provisioning"
  dest_dirstem = "Weave/Profiles/service-provisioning"
  sources = [
    "ServiceProvisioning.h",
  ]
}

openweave_headers("WeaveProfiles_software_update") {
  source_dirstem = "src/lib/profiles/software-update"
  dest_dirstem = "Weave/Profiles/software-update"
  sources = [
    "SoftwareUpdateProfile.h",
    "WeaveImageAnnounceServer.h",
  ]
}

openweave_headers("WeaveProfiles_time") {
  source_dirstem = "src/lib/profiles/time"
  dest_dirstem = "Weave/Profiles/time"
  sources = [
    "WeaveTime.h"
  ]
}

openweave_headers("WeaveProfiles_token_pairing") {
  source_dirstem = "src/lib/profiles/token-pairing"
  dest_dirstem = "Weave/Profiles/token-pairing"
  sources = [
    "TokenPairing.h",
  ]
}

openweave_headers("WeaveProfiles_status_report") {
  source_dirstem = "src/lib/profiles/status-report"
  dest_dirstem = "Weave/Profiles/status-report"
  sources = [
    "StatusReportProfile.h"
  ]
}

openweave_headers("WeaveProfiles_weave_tunneling") {
  source_dirstem = "src/lib/profiles/weave-tunneling"
  dest_dirstem = "Weave/Profiles/weave-tunneling"
  sources = [
    "WeaveTunnelAgent.h",
    "WeaveTunnelControl.h",
    "WeaveTunnelCommon.h",
    "WeaveTunnelConnectionMgr.h",
  ]
}

openweave_headers("WeaveProfiles_nestlabs_device_description") {
  source_dirstem = "src/lib/profiles/vendor/nestlabs/device-description"
  dest_dirstem = "Weave/Profiles/vendor/nestlabs/device-description"
  sources = [
    "NestProductIdentifiers.hpp",
  ]
}

openweave_headers("WeaveProfiles_nestlabs_thermostat") {
  source_dirstem = "src/lib/profiles/vendor/nestlabs/thermostat"
  dest_dirstem = "Weave/Profiles/vendor/nestlabs/thermostat"
  sources = [
    "NestThermostatWeaveConstants.h",
  ]
}

openweave_headers("WeaveProfiles_nestlabs_dropcam_legacy_pairing") {
  source_dirstem = "src/lib/profiles/vendor/nestlabs/dropcam-legacy-pairing"
  dest_dirstem = "Weave/Profiles/vendor/nestlabs/dropcam-legacy-pairing"
  sources = [
    "DropcamLegacyPairing.h"
  ]
}

group("WeaveProfiles_headers") {
  deps = [
    ":WeaveProfiles_base_headers",
    ":WeaveProfiles_bulk_data_transfer_development_headers",
    ":WeaveProfiles_bulk_data_transfer_headers",
    ":WeaveProfiles_common_headers",
    ":WeaveProfiles_data_management_headers",
    ":WeaveProfiles_data_management_current_headers",
    ":WeaveProfiles_device_control_headers",
    ":WeaveProfiles_device_description_headers",
    ":WeaveProfiles_echo_headers",
    ":WeaveProfiles_echo_current_headers",
    ":WeaveProfiles_echo_next_headers",
    ":WeaveProfiles_fabric_provisioning_headers",
    ":WeaveProfiles_heartbeat_headers",
    ":WeaveProfiles_locale_headers",
    ":WeaveProfiles_network_provisioning_headers",
    ":WeaveProfiles_security_headers",
    ":WeaveProfiles_service_directory_headers",
    ":WeaveProfiles_service_provisioning_headers",
    ":WeaveProfiles_software_update_headers",
    ":WeaveProfiles_status_report_headers",
    ":WeaveProfiles_time_headers",
    ":WeaveProfiles_token_pairing_headers",
    ":WeaveProfiles_weave_tunneling_headers",
    ":WeaveProfiles_nestlabs_device_description_headers",
    ":WeaveProfiles_nestlabs_thermostat_headers",
    ":WeaveProfiles_nestlabs_dropcam_legacy_pairing_headers",
  ]
  if (weave_build_legacy_wdm) {
    deps += [
      ":WeaveProfiles_data_management_legacy_headers",
    ]
  }
}

openweave_headers("DeviceLayer_common") {
  source_dirstem = "src/adaptations/device-layer/include/Weave/DeviceLayer"
  dest_dirstem = "Weave/DeviceLayer"
  sources = [
    "ConfigurationManager.h",
    "ConnectivityManager.h",
    "GeneralUtils.h",
    "NetworkTelemetryManager.h",
    "PlatformManager.h",
    "SoftwareUpdateManager.h",
    "TimeSyncManager.h",
    "TraitManager.h",
    "WeaveDeviceConfig.h",
    "WeaveDeviceError.h",
    "WeaveDeviceEvent.h",
    "WeaveDeviceLayer.h",
  ]
}

openweave_headers("DeviceLayer_internal") {
  source_dirstem = "src/adaptations/device-layer/include/Weave/DeviceLayer/internal"
  dest_dirstem = "Weave/DeviceLayer/internal"
  sources = [
    "BLEManager.h",
    "DeviceControlServer.h",
    "DeviceDescriptionServer.h",
    "DeviceIdentityTraitDataSource.h",
    "DeviceNetworkInfo.h",
    "EchoServer.h",
    "EventLogging.h",
    "FabricProvisioningServer.h",
    "FactoryProvisioning.h",
    "FactoryProvisioning.ipp",
    "GenericConnectivityManagerImpl.h",
    "GenericConnectivityManagerImpl_BLE.h",
    "GenericConnectivityManagerImpl_BLE.ipp",
    "GenericConnectivityManagerImpl_NoBLE.h",
    "GenericConnectivityManagerImpl_Thread.h",
    "GenericConnectivityManagerImpl_Thread.ipp",
    "GenericConnectivityManagerImpl_NoThread.h",
    "GenericConnectivityManagerImpl_NoWiFi.h",
    "GenericConfigurationManagerImpl.h",
    "GenericConfigurationManagerImpl.ipp",
    "GenericNetworkProvisioningServerImpl.h",
    "GenericNetworkProvisioningServerImpl.ipp",
    "GenericPlatformManagerImpl.h",
    "GenericPlatformManagerImpl.ipp",
    "GenericSoftwareUpdateManagerImpl.h",
    "GenericSoftwareUpdateManagerImpl.ipp",
    "GenericSoftwareUpdateManagerImpl_BDX.h",
    "GenericSoftwareUpdateManagerImpl_BDX.ipp",
    "NetworkProvisioningServer.h",
    "ServiceDirectoryManager.h",
    "ServiceProvisioningServer.h",
    "ServiceTunnelAgent.h",
    "WeaveDeviceLayerInternal.h",
  ]
}

openweave_headers("DeviceLayer_trait_support_firmware") {
  source_dirstem = "src/adaptations/device-layer/trait-support"
  dest_dirstem = "nest/trait/firmware"
  sources = [
    "nest/trait/firmware/SoftwareUpdateTrait.h",
  ]
}

openweave_headers("DeviceLayer_trait_support_network") {
  source_dirstem = "src/adaptations/device-layer/trait-support"
  dest_dirstem = "nest/trait/network"
  sources = [
    "nest/trait/network/TelemetryNetworkTrait.h",
    "nest/trait/network/TelemetryNetworkWifiTrait.h",
    "nest/trait/network/TelemetryNetworkWpanTrait.h",
  ]
}

openweave_headers("DeviceLayer_trait_support_common") {
  source_dirstem = "src/adaptations/device-layer/trait-support"
  dest_dirstem = "weave/common"
  sources = [
    "weave/common/ProfileSpecificStatusCodeStructSchema.h",
  ]
}

openweave_headers("DeviceLayer_trait_support_description") {
  source_dirstem = "src/adaptations/device-layer/trait-support"
  dest_dirstem = "weave/trait/description"
  sources = [
    "weave/trait/description/DeviceIdentityTrait.h",
  ]
}

openweave_headers("DeviceLayer_trait_support_telemetry") {
  source_dirstem = "src/adaptations/device-layer/trait-support"
  dest_dirstem = "weave/trait/telemetry/tunnel"
  sources = [
    "weave/trait/telemetry/tunnel/TelemetryTunnelTrait.h",
  ]
}

group("DeviceLayer_headers") {
  public_deps = [
    ":DeviceLayer_common_headers",
    ":DeviceLayer_trait_support_firmware_headers",
    ":DeviceLayer_trait_support_network_headers",
    ":DeviceLayer_trait_support_common_headers",
    ":DeviceLayer_trait_support_description_headers",
    ":DeviceLayer_trait_support_telemetry_headers",
  ]
}

# Set of public headers for libraries within OpenWeave.
group("public_headers") {
  public_deps = [
    ":BuildConfig_headers",
    ":ProjectConfig_headers",
    ":BleLayer_headers",
    ":SystemLayer_headers",
    ":Warm_headers",
    ":WeaveCore_headers",
    ":WeaveCommon_headers",
    ":WeaveSupport_headers",
    ":WeaveProfiles_headers",
    ":InetLayer_headers",
    ":DeviceLayer_headers",
  ]
}

group("common") {
  public_deps = [
    ":public_headers",
    "//third_party/boringssl",
    "//third_party/nlassert",
    "//third_party/nlio",
    "//third_party/openssl-ecjpake",
  ]
}
