# Copyright 2022 The Pigweed 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
#
#     https://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.

CONFIG_ASSERT=y
CONFIG_NANOPB=y
CONFIG_BOARD_NATIVE_POSIX_64BIT=y
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=4

CONFIG_PIGWEED_ASSERT=y
CONFIG_PIGWEED_BYTES=y
CONFIG_PIGWEED_CHECKSUM=y
CONFIG_PIGWEED_CHRONO_SYSTEM_CLOCK=y
CONFIG_PIGWEED_CONTAINERS=y
CONFIG_PIGWEED_FUNCTION=y
CONFIG_PIGWEED_HDLC_RPC=y
CONFIG_PIGWEED_INTERRUPT_CONTEXT=y
CONFIG_PIGWEED_LOG=y
CONFIG_PIGWEED_POLYFILL=y
CONFIG_PIGWEED_POLYFILL_OVERRIDES=y
CONFIG_PIGWEED_PREPROCESSOR=y
CONFIG_PIGWEED_RESULT=y
CONFIG_PIGWEED_ROUTER_PACKET_PARSER=y
CONFIG_PIGWEED_RPC_COMMON=y
CONFIG_PIGWEED_SPAN=y
CONFIG_PIGWEED_STATUS=y
CONFIG_PIGWEED_STREAM=y
CONFIG_PIGWEED_STRING=y
CONFIG_PIGWEED_SYNC_MUTEX=y
CONFIG_PIGWEED_SYS_IO=y
CONFIG_PIGWEED_VARINT=y

CONFIG_CPLUSPLUS=y
CONFIG_STD_CPP17=y
CONFIG_LIB_CPLUSPLUS=y
CONFIG_CPP_MAIN=y
