# 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) set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exported_symbols") #set_property(TARGET shm_queue PROPERTY POSITION_INDEPENDENT_CODE ON) add_compile_options(-fPIC) #target_compile_options(shm_queue PRIVATE -fPIC) 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 ./bh_api.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 ../proto/source/bhome_msg_api.pb.cc ../proto/source/bhome_msg.pb.cc ../proto/source/error_msg.pb.cc ./shm/shm_mm_wrapper.cpp ./msg_trigger/msg_mgr.cpp ./shm/mm.cpp ./shm/hashtable.cpp ./shm/shm_mm.cpp ) if (BUILD_SHARED_LIBS) add_library(shm_queue SHARED ${_SOURCES_}) target_compile_options(shm_queue PRIVATE -fPIC) set_property(TARGET shm_queue PROPERTY POSITION_INDEPENDENT_CODE ON) 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}/proto ${CMAKE_CURRENT_SOURCE_DIR}/queue ${CMAKE_CURRENT_SOURCE_DIR}/socket ${CMAKE_CURRENT_SOURCE_DIR}/msg_trigger ${CMAKE_CURRENT_SOURCE_DIR}/net ) add_executable(bus_proxy_start bus_proxy_start.cpp) target_link_libraries(bus_proxy_start PRIVATE shm_queue ${EXTRA_LIBS} ) target_link_libraries(shm_queue PUBLIC ${EXTRA_LIBS} ) # 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 ./proc_def.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 )