# Copyright (c) 2024 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build_overrides/chip.gni")

source_set("events") {
  sources = [
    "EventHeader.h",
    "EventLoggingTypes.h",
  ]

  deps = [
    "${chip_root}/src/access:types",
    "${chip_root}/src/app:paths",
  ]
}

source_set("MessageDef") {
  sources = [
    "ArrayBuilder.cpp",
    "ArrayBuilder.h",
    "ArrayParser.cpp",
    "ArrayParser.h",
    "AttributeDataIB.cpp",
    "AttributeDataIB.h",
    "AttributeDataIBs.cpp",
    "AttributeDataIBs.h",
    "AttributePathIB.cpp",
    "AttributePathIB.h",
    "AttributePathIBs.cpp",
    "AttributePathIBs.h",
    "AttributeReportIB.cpp",
    "AttributeReportIB.h",
    "AttributeReportIBs.cpp",
    "AttributeReportIBs.h",
    "AttributeStatusIB.cpp",
    "AttributeStatusIB.h",
    "AttributeStatusIBs.cpp",
    "AttributeStatusIBs.h",
    "Builder.cpp",
    "Builder.h",
    "ClusterPathIB.cpp",
    "ClusterPathIB.h",
    "CommandDataIB.cpp",
    "CommandDataIB.h",
    "CommandPathIB.cpp",
    "CommandPathIB.h",
    "CommandStatusIB.cpp",
    "CommandStatusIB.h",
    "DataVersionFilterIB.cpp",
    "DataVersionFilterIB.h",
    "DataVersionFilterIBs.cpp",
    "DataVersionFilterIBs.h",
    "EventDataIB.cpp",
    "EventDataIB.h",
    "EventFilterIB.cpp",
    "EventFilterIB.h",
    "EventFilterIBs.cpp",
    "EventFilterIBs.h",
    "EventPathIB.cpp",
    "EventPathIB.h",
    "EventPathIBs.cpp",
    "EventPathIBs.h",
    "EventReportIB.cpp",
    "EventReportIB.h",
    "EventReportIBs.cpp",
    "EventReportIBs.h",
    "EventStatusIB.cpp",
    "EventStatusIB.h",
    "InvokeRequestMessage.cpp",
    "InvokeRequestMessage.h",
    "InvokeRequests.cpp",
    "InvokeRequests.h",
    "InvokeResponseIB.cpp",
    "InvokeResponseIB.h",
    "InvokeResponseIBs.cpp",
    "InvokeResponseIBs.h",
    "InvokeResponseMessage.cpp",
    "InvokeResponseMessage.h",
    "ListBuilder.cpp",
    "ListBuilder.h",
    "ListParser.cpp",
    "ListParser.h",
    "MessageBuilder.cpp",
    "MessageBuilder.h",
    "MessageDefHelper.cpp",
    "MessageDefHelper.h",
    "MessageParser.cpp",
    "MessageParser.h",
    "Parser.cpp",
    "Parser.h",
    "ReadRequestMessage.cpp",
    "ReadRequestMessage.h",
    "ReportDataMessage.cpp",
    "ReportDataMessage.h",
    "StatusIB.cpp",
    "StatusIB.h",
    "StatusResponseMessage.cpp",
    "StatusResponseMessage.h",
    "StructBuilder.cpp",
    "StructBuilder.h",
    "StructParser.cpp",
    "StructParser.h",
    "SubscribeRequestMessage.cpp",
    "SubscribeRequestMessage.h",
    "SubscribeResponseMessage.cpp",
    "SubscribeResponseMessage.h",
    "TimedRequestMessage.cpp",
    "TimedRequestMessage.h",
    "WriteRequestMessage.cpp",
    "WriteRequestMessage.h",
    "WriteResponseMessage.cpp",
    "WriteResponseMessage.h",
  ]

  deps = [
    ":events",
    "${chip_root}/src/app:app_config",
    "${chip_root}/src/app:constants",
    "${chip_root}/src/app:paths",
    "${chip_root}/src/lib/core",
    "${chip_root}/src/lib/support",
    "${chip_root}/src/protocols/interaction_model",
    "${chip_root}/src/protocols/secure_channel",
  ]
}
