From 22d06a02dbf9cbdcf13346ff01dd2fcd814770e1 Mon Sep 17 00:00:00 2001 From: Henry Winkel Date: Sat, 22 Oct 2022 15:12:29 +0200 Subject: [PATCH] ADD: added protbuf libs dependencies in CMakeLists.txt --- CMakeLists.txt | 9 +++++++++ cmake/Modules/protobuf.cmake | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 cmake/Modules/protobuf.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ad0ef48..a182c33 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,13 @@ IF(NOT TARGET cppzmq) add_subdirectory(libs/cppzmq EXCLUDE_FROM_ALL) ENDIF() +set(protobuf_BUILD_TESTS OFF CACHE INTERNAL "") +set(protobuf_BUILD_EXAMPLES OFF CACHE INTERNAL "") +add_subdirectory(libs/protobuf EXCLUDE_FROM_ALL) +include(protobuf) + +protobuf_generate_cpp(PROTO_PATH tests/protos CPP_PATH tests/protos/src HPP_PATH tests/protos/include) + add_library(whisper-com STATIC include/WHISPER/whisper.hpp @@ -37,6 +44,8 @@ target_link_libraries(whisper-com libzmq ) +add_dependencies(whisper-com protoc) + target_include_directories(whisper-com PUBLIC $ $ diff --git a/cmake/Modules/protobuf.cmake b/cmake/Modules/protobuf.cmake new file mode 100644 index 0000000..c86a567 --- /dev/null +++ b/cmake/Modules/protobuf.cmake @@ -0,0 +1,37 @@ + + + +function(protobuf_generate_cpp) + set(OPTIONS) + set(SINGLE_VALUE_KEYWORDS + PROTO_PATH + CPP_PATH + HPP_PATH + ) + set(MULTI_VALUE_KEYWORDS) + cmake_parse_arguments(protobuf + "${OPTIONS}" + "${SINGLE_VALUE_KEYWORDS}" + "${MULTI_VALUE_KEYWORDS}" + ${ARGN}) + + FILE(GLOB PROTO_FILES ${protobuf_PROTO_PATH}/*.proto) + set(PROTOC ${CMAKE_BINARY_DIR}/libs/protobuf/protoc) + # set(PROTOC protoc) + + FOREACH(proto ${PROTO_FILES}) + FILE(TO_NATIVE_PATH ${proto} proto_native) + get_filename_component(protoFILENAME ${proto} NAME_WLE ) + get_filename_component(protoDIR ${proto} DIRECTORY) + + + add_custom_command( + OUTPUT "${protoDIR}/${protoFILENAME}.pb.cc" + DEPENDS "${protoDIR}/${protoFILENAME}.proto" + COMMAND ${PROTOC} --cpp_out=${protoDIR} --proto_path=${protoDIR} --proto_path="${CMAKE_SOURCE_DIR}/libs/protobuf/src" "${protoDIR}/${protoFILENAME}.proto" + ) + + ENDFOREACH(proto) + + +endfunction()