11project (ipc)
22
3- add_compile_options (-D__IPC_LIBRARY__)
4-
5- if (NOT MSVC )
6- add_compile_options (-fPIC)
7- endif ()
8-
9- include_directories (
10- ${LIBIPC_PROJECT_DIR} /include
11- ${LIBIPC_PROJECT_DIR} /src)
12-
133if (UNIX )
144 file (GLOB SRC_FILES ${LIBIPC_PROJECT_DIR} /src/libipc/platform/*_linux.cpp)
155else ()
@@ -26,14 +16,44 @@ file(GLOB HEAD_FILES
2616 ${LIBIPC_PROJECT_DIR} /src/libipc/platform/*.h
2717 ${LIBIPC_PROJECT_DIR} /src/libipc/utility/*.h)
2818
29- add_library (${PROJECT_NAME} SHARED ${SRC_FILES} ${HEAD_FILES} )
19+ if (LIBIPC_BUILD_SHARED_LIBS)
20+ add_library (${PROJECT_NAME} SHARED ${SRC_FILES} ${HEAD_FILES} )
21+ target_compile_definitions (${PROJECT_NAME}
22+ INTERFACE
23+ LIBIPC_LIBRARY_SHARED_USING__
24+ PRIVATE
25+ LIBIPC_LIBRARY_SHARED_BUILDING__)
26+ else ()
27+ add_library (${PROJECT_NAME} STATIC ${SRC_FILES} ${HEAD_FILES} )
28+ endif ()
29+
30+ # set output directory
31+ set_target_properties (${PROJECT_NAME}
32+ PROPERTIES
33+ ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
34+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /lib"
35+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR} /bin" )
36+
37+ # set version
38+ set_target_properties (${PROJECT_NAME}
39+ PROPERTIES
40+ VERSION 1.0.0
41+ SOVERSION 1)
42+
43+ target_include_directories (${PROJECT_NAME}
44+ PUBLIC ${LIBIPC_PROJECT_DIR} /include
45+ PRIVATE ${LIBIPC_PROJECT_DIR} /src
46+ )
47+
3048if (NOT MSVC )
3149 target_link_libraries (${PROJECT_NAME} PUBLIC
32- pthread
33- $<$<NOT :$<STREQUAL :${CMAKE_SYSTEM_NAME} ,Windows>>:rt>)
50+ pthread
51+ $<$<NOT :$<STREQUAL :${CMAKE_SYSTEM_NAME} ,Windows>>:rt>)
3452endif ()
3553
3654install (
3755 TARGETS ${PROJECT_NAME}
38- DESTINATION "lib"
56+ RUNTIME DESTINATION bin
57+ LIBRARY DESTINATION lib
58+ ARCHIVE DESTINATION lib
3959)
0 commit comments