@@ -25,22 +25,38 @@ set(OSI_PROTO_FILES
2525
2626protobuf_generate_cpp (PROTO_SRCS PROTO_HEADERS ${OSI_PROTO_FILES} )
2727
28- add_library (${PROJECT_NAME } STATIC ${PROTO_SRCS} ${PROTO_HEADERS} )
29- target_include_directories (${PROJECT_NAME }
28+ add_library (${PROJECT_NAME } _static STATIC ${PROTO_SRCS} ${PROTO_HEADERS} )
29+ target_include_directories (${PROJECT_NAME } _static
3030 PUBLIC
3131 ${PROTOBUF_INCLUDE_DIR}
3232 ${CMAKE_CURRENT_BINARY_DIR }
3333)
34- target_link_libraries (${PROJECT_NAME } PUBLIC ${PROTOBUF_LIBRARY} )
34+ target_link_libraries (${PROJECT_NAME } _static PUBLIC ${PROTOBUF_LIBRARY} )
35+
36+
37+ add_library (${PROJECT_NAME } _obj OBJECT ${PROTO_SRCS} ${PROTO_HEADERS} )
38+ target_include_directories (${PROJECT_NAME } _obj
39+ PUBLIC
40+ ${PROTOBUF_INCLUDE_DIR}
41+ ${CMAKE_CURRENT_BINARY_DIR }
42+ )
43+ set_property (TARGET ${PROJECT_NAME } _obj PROPERTY POSITION_INDEPENDENT_CODE ON )
3544
3645
37- add_library (${PROJECT_NAME } _pic STATIC ${PROTO_SRCS} ${PROTO_HEADERS} )
46+ add_library (${PROJECT_NAME } _pic STATIC $< TARGET_OBJECTS : ${ PROJECT_NAME } _obj > )
3847target_include_directories (${PROJECT_NAME } _pic
3948 PUBLIC
4049 ${PROTOBUF_INCLUDE_DIR}
4150 ${CMAKE_CURRENT_BINARY_DIR }
4251)
4352target_link_libraries (${PROJECT_NAME } _pic PUBLIC ${PROTOBUF_LIBRARY} )
53+ set_property (TARGET ${PROJECT_NAME } _pic PROPERTY POSITION_INDEPENDENT_CODE ON )
4454
4555
46- set_property (TARGET ${PROJECT_NAME } _pic PROPERTY POSITION_INDEPENDENT_CODE ON )
56+ add_library (${PROJECT_NAME } SHARED $<TARGET_OBJECTS :${PROJECT_NAME } _obj >)
57+ target_include_directories (${PROJECT_NAME }
58+ PUBLIC
59+ ${PROTOBUF_INCLUDE_DIR}
60+ ${CMAKE_CURRENT_BINARY_DIR }
61+ )
62+ target_link_libraries (${PROJECT_NAME } PUBLIC ${PROTOBUF_LIBRARY} )
0 commit comments