Fix path to generated proto sources when embedding #34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When embedding SAPI in an external CMake project, the version of
protobuf_generate_cpp
that we lifted from upstream protobuf producesthe wrong generated file paths.
For example, given this project structure:
And a CMake file in
myproject/CMakeLists.txt
that embeds SAPI likethis:
Then
protobuf_generate_cpp
correctly invokes the protoc compiler togenerate
/parent/myproject_build/sandboxed-api/sandboxed_api/proto_arg.proto.pb.cc'. However, the path of the generated source file that is passed to the C++ compiler will be
/parent/myproject_build/sandboxed-api/sandboxed_api/../../myproject_build/sandboxed-api/sandboxed_api/proto_arg.pb.cc. Note the duplicated project build directory component in the canonicalized version:
/parent/myproject_build/myproject_build/sandboxed-api/sandboxed_api/proto_arg.pb.cc`.This change simple omits the computation of any relative file paths and
simply uses
_pb_PROTOC_OUT_DIR
which defauls toCMAKE_CURRENT_BINARY_DIR
, which should always contain the correctpath.
Signed-off-by: Christian Blichmann [email protected]