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}