Skip to content

Commit 6a032b6

Browse files
authored
Merge pull request #57 from OpenSimulationInterface/feature/shared-library-build
Add shared lib target, rename static lib (fix #55)
2 parents 379840a + 020c77e commit 6a032b6

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

CMakeLists.txt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,38 @@ set(OSI_PROTO_FILES
2525

2626
protobuf_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>)
3847
target_include_directories(${PROJECT_NAME}_pic
3948
PUBLIC
4049
${PROTOBUF_INCLUDE_DIR}
4150
${CMAKE_CURRENT_BINARY_DIR}
4251
)
4352
target_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

Comments
 (0)