Skip to content

Define cmake target as PIC if BUILD_SHARED_LIBS #10828

Open
@langchr86

Description

@langchr86

What language does this apply to?
Generated C/C++ code and the specific cmake target.

Describe the problem you are trying to solve.
When I link to the generated cmake target and set the BUILD_SHARED_LIBS variable globally I get linker errors because the protobuf created code is not relocateable.

Describe the solution you'd like
In my user code I use something like the following:

# ensure relocateable code
if (BUILD_SHARED_LIBS)
  set_property(TARGET ${PROTO_TARGET} PROPERTY POSITION_INDEPENDENT_CODE TRUE)
endif ()

But this could be integrated in the cmake part of this project directly.

Describe alternatives you've considered
It's not a big problem. But may be helpful for people that do not have that much cmake experience.

Additional context
Nothing.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions