project(ipc) if(NOT MSVC) add_compile_options( -Wno-attributes) endif() aux_source_directory(${LIBIPC_PROJECT_DIR}/src/libipc SRC_FILES) file(GLOB HEAD_FILES ${LIBIPC_PROJECT_DIR}/include/libipc/*.h) if (LIBIPC_BUILD_SHARED_LIBS) add_library(${PROJECT_NAME} SHARED ${SRC_FILES} ${HEAD_FILES}) target_compile_definitions(${PROJECT_NAME} INTERFACE LIBIMP_LIBRARY_SHARED_USING__ PRIVATE LIBIMP_LIBRARY_SHARED_BUILDING__) else() add_library(${PROJECT_NAME} STATIC ${SRC_FILES} ${HEAD_FILES}) endif() # set output directory set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") # set version set_target_properties(${PROJECT_NAME} PROPERTIES VERSION 2.0.0 SOVERSION 4) target_include_directories(${PROJECT_NAME} PUBLIC ${LIBIPC_PROJECT_DIR}/include PRIVATE ${LIBIPC_PROJECT_DIR}/src) if(NOT MSVC) target_link_libraries(${PROJECT_NAME} PUBLIC $<$>:pthread> $<$,$>>:rt> "-Wl,--whole-archive" imp pmr "-Wl,--no-whole-archive") else() target_link_libraries(${PROJECT_NAME} PUBLIC imp pmr) endif() install( TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)