blob: 70680640b025b2e1355e91820719b8b64fe9da64 [file] [log] [blame]
# Copyright (c) 2020-2022 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/build.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/nlio.gni")
import("//build_overrides/pigweed.gni")
import("${chip_root}/build/chip/buildconfig_header.gni")
import("${chip_root}/build/chip/tests.gni")
import("${chip_root}/src/inet/inet.gni")
import("core.gni")
buildconfig_header("chip_buildconfig") {
header = "CHIPBuildConfig.h"
header_dir = "core"
chip_target_style_unix = chip_target_style == "unix"
chip_target_style_embedded = chip_target_style == "embedded"
chip_config_memory_management_malloc =
chip_config_memory_management == "malloc"
chip_config_memory_management_platform =
chip_config_memory_management == "platform"
chip_config_short_error_str =
chip_config_short_error_str || chip_target_style_embedded
# TODO - Move CHIP_PROJECT_CONFIG_INCLUDE, CHIP_PLATFORM_CONFIG_INCLUDE here.
# Currently those are also used from src/system.
defines = [
"CHIP_FUZZING_ENABLED=false",
"CHIP_CONFIG_TEST=${chip_build_tests}",
"CHIP_ERROR_LOGGING=${chip_error_logging}",
"CHIP_PROGRESS_LOGGING=${chip_progress_logging}",
"CHIP_DETAIL_LOGGING=${chip_detail_logging}",
"CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE=${chip_log_message_max_size}",
"CHIP_AUTOMATION_LOGGING=${chip_automation_logging}",
"CHIP_PW_TOKENIZER_LOGGING=${chip_pw_tokenizer_logging}",
"CHIP_USE_PW_LOGGING=${chip_use_pw_logging}",
"CHIP_EXCHANGE_NODE_ID_LOGGING=${chip_exchange_node_id_logging}",
"CHIP_CONFIG_SHORT_ERROR_STR=${chip_config_short_error_str}",
"CHIP_CONFIG_ENABLE_ARG_PARSER=${chip_config_enable_arg_parser}",
"CHIP_TARGET_STYLE_UNIX=${chip_target_style_unix}",
"CHIP_TARGET_STYLE_EMBEDDED=${chip_target_style_embedded}",
"CHIP_CONFIG_MEMORY_MGMT_MALLOC=${chip_config_memory_management_malloc}",
"HAVE_MALLOC=${chip_config_memory_management_malloc}",
"HAVE_FREE=${chip_config_memory_management_malloc}",
"HAVE_NEW=false",
"CHIP_CONFIG_MEMORY_MGMT_PLATFORM=${chip_config_memory_management_platform}",
"CHIP_CONFIG_MEMORY_DEBUG_CHECKS=${chip_config_memory_debug_checks}",
"CHIP_CONFIG_MEMORY_DEBUG_DMALLOC=${chip_config_memory_debug_dmalloc}",
"CHIP_CONFIG_PROVIDE_OBSOLESCENT_INTERFACES=false",
"CHIP_CONFIG_TRANSPORT_TRACE_ENABLED=${chip_enable_transport_trace}",
"CHIP_CONFIG_TRANSPORT_PW_TRACE_ENABLED=${chip_enable_transport_pw_trace}",
"CHIP_CONFIG_MINMDNS_DYNAMIC_OPERATIONAL_RESPONDER_LIST=${chip_config_minmdns_dynamic_operational_responder_list}",
"CHIP_CONFIG_MINMDNS_MAX_PARALLEL_RESOLVES=${chip_config_minmdns_max_parallel_resolves}",
"CHIP_CONFIG_CANCELABLE_HAS_INFO_STRING_FIELD=${chip_config_cancelable_has_info_string_field}",
"CHIP_CONFIG_BIG_ENDIAN_TARGET=${chip_target_is_big_endian}",
"CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_WRITE=${chip_tlv_validate_char_string_on_write}",
"CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_READ=${chip_tlv_validate_char_string_on_read}",
"CHIP_CONFIG_COMMAND_SENDER_BUILTIN_SUPPORT_FOR_BATCHED_COMMANDS=${chip_enable_sending_batch_commands}",
]
visibility = [ ":chip_config_header" ]
}
source_set("chip_config_header") {
sources = [ "CHIPConfig.h" ]
public_configs = [ "${chip_root}/src:includes" ]
public_deps = [
"${chip_root}/src/ble:ble_config_header",
"${chip_root}/src/inet:inet_config_header",
"${chip_root}/src/system:system_config_header",
]
deps = [ ":chip_buildconfig" ]
allow_circular_includes_from = [ "${chip_root}/src/ble:ble_config_header" ]
}
source_set("error") {
sources = [
"CHIPError.cpp",
"CHIPError.h",
"ErrorStr.cpp",
"ErrorStr.h",
]
public_deps = [
":chip_config_header",
"${chip_root}/src/lib/support:attributes",
"${chip_root}/src/lib/support:type-traits",
]
}
source_set("string-builder-adapters") {
sources = [
"StringBuilderAdapters.cpp",
"StringBuilderAdapters.h",
]
public_deps = [
":error",
"$dir_pw_string",
]
}
source_set("encoding") {
sources = [ "CHIPEncoding.h" ]
public_deps = [ "${nlio_root}:nlio" ]
}
source_set("types") {
sources = [
"CHIPSafeCasts.h",
"CHIPVendorIdentifiers.hpp",
"DataModelTypes.h",
"Global.h",
"GroupId.h",
"InPlace.h",
"NodeId.h",
"Optional.h",
"PasscodeId.h",
"ReferenceCounted.h",
"Unchecked.h",
]
public_deps = [
":chip_config_header",
"${chip_root}/src/lib/support:memory",
"${chip_root}/src/lib/support:verifymacros",
]
}
static_library("core") {
output_name = "libChipCore"
sources = [
"CASEAuthTag.h",
"CHIPCallback.h",
"CHIPCore.h",
"CHIPKeyIds.cpp",
"CHIPKeyIds.h",
"CHIPPersistentStorageDelegate.h",
"ClusterEnums.h",
"GroupedCallbackList.h",
"OTAImageHeader.cpp",
"OTAImageHeader.h",
"PeerId.h",
"ScopedNodeId.h",
"TLV.h",
"TLVBackingStore.h",
"TLVCircularBuffer.cpp",
"TLVCircularBuffer.h",
"TLVCommon.h",
"TLVData.h",
"TLVDebug.cpp",
"TLVDebug.h",
"TLVReader.cpp",
"TLVReader.h",
"TLVTags.cpp",
"TLVTags.h",
"TLVTypes.h",
"TLVUpdater.cpp",
"TLVUpdater.h",
"TLVUtilities.cpp",
"TLVUtilities.h",
"TLVWriter.cpp",
"TLVWriter.h",
]
cflags = [ "-Wconversion" ]
public_deps = [
":chip_config_header",
":error",
"${chip_root}/src/app/common:enums",
"${chip_root}/src/ble",
"${chip_root}/src/inet",
"${chip_root}/src/lib/support",
"${chip_root}/src/system",
]
allow_circular_includes_from = [
"${chip_root}/src/ble",
"${chip_root}/src/lib/support",
"${chip_root}/src/inet",
"${chip_root}/src/system",
]
}
static_library("vectortlv") {
output_name = "libVectorTlv"
output_dir = "${root_out_dir}/lib"
sources = [
"TLVVectorWriter.cpp",
"TLVVectorWriter.h",
]
cflags = [ "-Wconversion" ]
public_deps = [ ":core" ]
}