FindProtobuf: Merge patch that allows extra import dirs

Added support for additional import paths during protoc invocation
time to the PROTOBUF_GENERATE_CPP public macro via a new
PROTOBUF_IMPORT_DIRS optional variable.

Patch courtesy of Miroslav Kes <mkes@ra.rockwell.com>
This commit is contained in:
Philip Lowman 2011-12-18 18:02:48 -05:00
parent 3c101429a4
commit 84079c92ca
1 changed files with 13 additions and 0 deletions

View File

@ -7,6 +7,9 @@
# (vsprojects/Debug & vsprojects/Release) will be searched # (vsprojects/Debug & vsprojects/Release) will be searched
# for libraries and binaries. # for libraries and binaries.
# #
# PROTOBUF_IMPORT_DIRS - List of additional directories to be searched for
# imported .proto files. (New in CMake 2.8.7)
#
# Defines the following variables: # Defines the following variables:
# #
# PROTOBUF_FOUND - Found the Google Protocol Buffers library (libprotobuf & header files) # PROTOBUF_FOUND - Found the Google Protocol Buffers library (libprotobuf & header files)
@ -91,6 +94,16 @@ function(PROTOBUF_GENERATE_CPP SRCS HDRS)
set(_protobuf_include_path -I ${CMAKE_CURRENT_SOURCE_DIR}) set(_protobuf_include_path -I ${CMAKE_CURRENT_SOURCE_DIR})
endif() endif()
if(DEFINED PROTOBUF_IMPORT_DIRS)
foreach(DIR ${PROTOBUF_IMPORT_DIRS})
get_filename_component(ABS_PATH ${DIR} ABSOLUTE)
list(FIND _protobuf_include_path ${ABS_PATH} _contains_already)
if(${_contains_already} EQUAL -1)
list(APPEND _protobuf_include_path -I ${ABS_PATH})
endif()
endforeach()
endif()
set(${SRCS}) set(${SRCS})
set(${HDRS}) set(${HDRS})
foreach(FIL ${ARGN}) foreach(FIL ${ARGN})