Merge pull request #822 from Innoseis/options_subfolder
Reorders protoc include path passed by FindNanopb.cmake so that proto file hierarchy is preserved.
diff --git a/extra/FindNanopb.cmake b/extra/FindNanopb.cmake
index f2ecd26..d2ca7d2 100644
--- a/extra/FindNanopb.cmake
+++ b/extra/FindNanopb.cmake
@@ -125,6 +125,12 @@
if(NOT NANOPB_GENERATE_CPP_UNPARSED_ARGUMENTS)
return()
endif()
+ set(NANOPB_OPTIONS_DIRS)
+
+ if(NANOPB_GENERATE_CPP_RELPATH)
+ list(APPEND _nanopb_include_path "-I${NANOPB_GENERATE_CPP_RELPATH}")
+ list(APPEND NANOPB_OPTIONS_DIRS ${NANOPB_GENERATE_CPP_RELPATH})
+ endif()
if(NANOPB_GENERATE_CPP_APPEND_PATH)
# Create an include path for each file specified
@@ -137,10 +143,6 @@
set(_nanopb_include_path "-I${CMAKE_CURRENT_SOURCE_DIR}")
endif()
- if(NANOPB_GENERATE_CPP_RELPATH)
- list(APPEND _nanopb_include_path "-I${NANOPB_GENERATE_CPP_RELPATH}")
- endif()
-
if(DEFINED NANOPB_IMPORT_DIRS)
foreach(DIR ${NANOPB_IMPORT_DIRS})
get_filename_component(ABS_PATH ${DIR} ABSOLUTE)
@@ -216,9 +218,6 @@
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_PATH_REL}/${FIL_WE}.pb.c")
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_PATH_REL}/${FIL_WE}.pb.h")
- set(NANOPB_PLUGIN_OPTIONS)
- set(NANOPB_OPTIONS_DIRS)
-
# If there an options file in the same working directory, set it as a dependency
get_filename_component(ABS_OPT_FIL ${FIL_DIR}/${FIL_WE}.options ABSOLUTE)
if(EXISTS ${ABS_OPT_FIL})
@@ -245,6 +244,7 @@
list(REMOVE_DUPLICATES NANOPB_OPTIONS_DIRS)
endif()
+ set(NANOPB_PLUGIN_OPTIONS)
foreach(options_path ${NANOPB_OPTIONS_DIRS})
set(NANOPB_PLUGIN_OPTIONS "${NANOPB_PLUGIN_OPTIONS} -I${options_path}")
endforeach()
@@ -270,8 +270,8 @@
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_PATH_REL}/${FIL_WE}.pb.c"
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_PATH_REL}/${FIL_WE}.pb.h"
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE}
- ARGS -I${GENERATOR_PATH} -I${GENERATOR_CORE_DIR}
- -I${CMAKE_CURRENT_BINARY_DIR} ${_nanopb_include_path}
+ ARGS ${_nanopb_include_path} -I${GENERATOR_PATH}
+ -I${GENERATOR_CORE_DIR} -I${CMAKE_CURRENT_BINARY_DIR}
--plugin=protoc-gen-nanopb=${NANOPB_GENERATOR_PLUGIN}
${NANOPB_OPT_STRING}
${PROTOC_OPTIONS}