# Copyright (c) 2023, Basalte bv # # SPDX-License-Identifier: Apache-2.0 include_guard(GLOBAL) list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_NANOPB_MODULE_DIR}/extra) 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() find_package(Nanopb REQUIRED) # Usage: # list(APPEND CMAKE_MODULE_PATH ${ZEPHYR_BASE}/modules/nanopb) # include(nanopb) # # zephyr_nanopb_sources( ) # # Generate source and header files from provided .proto files and # add these as sources to the specified target. function(zephyr_nanopb_sources target) # Turn off the default nanopb behavior set(NANOPB_GENERATE_CPP_STANDALONE OFF) nanopb_generate_cpp(proto_srcs proto_hdrs RELPATH ${CMAKE_CURRENT_SOURCE_DIR} ${ARGN}) target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) target_sources(${target} PRIVATE ${proto_srcs} ${proto_hdrs}) endfunction()