62 lines
1.3 KiB
CMake
62 lines
1.3 KiB
CMake
# 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()
|