@@ -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