| # Copyright (c) 2021, Basalte bv |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| if(CONFIG_NANOPB) |
| |
| set(NANOPB_DIR ${ZEPHYR_CURRENT_MODULE_DIR}) |
| |
| find_program(PROTOC protoc) |
| if(NOT PROTOC) |
| message(FATAL_ERROR "'protoc' not found, please ensure protoc is installed\ |
| and in path. See https://docs.zephyrproject.org/latest/samples/modules/nanopb/README.html") |
| endif() |
| |
| set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${NANOPB_DIR}/extra) |
| find_package(Nanopb REQUIRED) |
| |
| zephyr_library() |
| |
| zephyr_include_directories(${NANOPB_DIR}) |
| |
| zephyr_library_sources( |
| ${NANOPB_DIR}/pb_common.c |
| ${NANOPB_DIR}/pb_encode.c |
| ${NANOPB_DIR}/pb_decode.c |
| ) |
| |
| zephyr_compile_definitions( |
| PB_MAX_REQUIRED_FIELDS=${CONFIG_NANOPB_MAX_REQUIRED_FIELDS}) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_ENABLE_MALLOC |
| PB_ENABLE_MALLOC |
| ) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_NO_ERRMSG |
| PB_NO_ERRMSG |
| ) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_BUFFER_ONLY |
| PB_BUFFER_ONLY |
| ) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_WITHOUT_64BIT |
| PB_WITHOUT_64BIT |
| ) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_ENCODE_ARRAYS_UNPACKED |
| PB_ENCODE_ARRAYS_UNPACKED |
| ) |
| |
| zephyr_compile_definitions_ifdef( |
| CONFIG_NANOPB_VALIDATE_UTF8 |
| PB_VALIDATE_UTF8 |
| ) |
| |
| endif() |