protocolbuffers/protobuf

Define cmake target as PIC if BUILD_SHARED_LIBS

Open

#10,828 建立於 2022年10月27日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)C++ (16,128 fork)batch import
c++cmakehelp wanted

倉庫指標

Star
 (71,223 star)
PR 合併指標
 (平均合併 2天 11小時) (30 天內合併 185 個 PR)

描述

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.

貢獻者指南