# should we use our own math functions
|
option(SUPPORT_RDMA "If support rdma" OFF)
|
|
# configure a header file to pass some of the CMake settings
|
# to the source code
|
configure_file(bus_config.h.in bus_config.h)
|
|
|
list(APPEND _SOURCES_
|
./logger_factory.cpp
|
./socket/bus_server_socket.cpp
|
./socket/bus_server_socket_wrapper.cpp
|
./socket/shm_socket.cpp
|
./socket/shm_mod_socket.cpp
|
./time_util.cpp
|
./bus_error.cpp
|
./futex_sem.cpp
|
./svsem.cpp
|
./net/net_conn_pool.cpp
|
./net/net_mod_server_socket_wrapper.cpp
|
./net/net_mod_socket_wrapper.cpp
|
./net/net_mod_socket.cpp
|
./net/net_mod_socket_io.cpp
|
./net/net_mod_server_socket.cpp
|
./shm/shm_mm_wrapper.cpp
|
./shm/mm.cpp
|
./shm/hashtable.cpp
|
./shm/shm_mm.cpp
|
|
)
|
|
if (BUILD_SHARED_LIBS)
|
add_library(shm_queue SHARED ${_SOURCES_})
|
else()
|
add_library(shm_queue STATIC ${_SOURCES_})
|
endif()
|
|
# STATIC SHARED
|
# add_library(shm_queue ${_SOURCES_})
|
|
target_include_directories(shm_queue PUBLIC ${EXTRA_INCLUDES} )
|
|
target_include_directories(shm_queue PUBLIC
|
${PROJECT_BINARY_DIR}/src
|
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}/shm
|
${CMAKE_CURRENT_SOURCE_DIR}/queue
|
${CMAKE_CURRENT_SOURCE_DIR}/socket
|
${CMAKE_CURRENT_SOURCE_DIR}/net
|
)
|
|
|
target_link_libraries(shm_queue PUBLIC ${EXTRA_LIBS} )
|
|
|
if (BUILD_SHARED_LIBS)
|
add_custom_command(
|
OUTPUT ${PROJECT_BINARY_DIR}/lib/libshm_queue.so.md5
|
COMMAND md5sum ${PROJECT_BINARY_DIR}/lib/libshm_queue.so > ${PROJECT_BINARY_DIR}/lib/libshm_queue.so.md5
|
DEPENDS ${PROJECT_BINARY_DIR}/lib/libshm_queue.so
|
COMMENT "Generate libshm_queue.so.md5"
|
VERBATIM
|
)
|
|
add_custom_target("genmd5" ALL DEPENDS ${PROJECT_BINARY_DIR}/lib/libshm_queue.so.md5)
|
endif()
|
|
# install rules
|
install(TARGETS shm_queue DESTINATION lib)
|
install(FILES
|
./socket/socket_def.h
|
./socket/bus_server_socket.h
|
./socket/shm_socket.h
|
./socket/shm_mod_socket.h
|
./socket/bus_server_socket_wrapper.h
|
./psem.h
|
./pread_write_lock.h
|
./key_def.h
|
./time_util.h
|
./sv_read_write_lock.h
|
./futex_sem.h
|
./bus_error.h
|
./bus_def.h
|
./logger_factory.h
|
./sole.h
|
./queue/linked_lock_free_queue.h
|
./queue/array_lock_free_queue.h
|
./queue/shm_queue.h
|
./queue/array_lock_free_sem_queue.h
|
./queue/lock_free_queue.h
|
./svsem.h
|
./net/net_conn_pool.h
|
./net/net_mod_socket.h
|
./net/net_mod_server_socket_wrapper.h
|
./net/net_mod_socket_io.h
|
./net/net_mod_server_socket.h
|
./net/net_mod_socket_wrapper.h
|
./shm/hashtable.h
|
./shm/mm.h
|
./shm/shm_mm_wrapper.h
|
./shm/shm_allocator.h
|
./shm/shm_mm.h
|
|
|
DESTINATION include)
|
|
install(FILES "${PROJECT_BINARY_DIR}/src/bus_config.h"
|
DESTINATION include
|
)
|