cmake_minimum_required(VERSION 3.10) project(mds2) set(CMAKE_CXX_STANDARD 11) # build-in rpath SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH "\$ORIGIN/lib/shared") # compiler flags set(CMAKE_CXX_FLAGS "-Wall -pthread") # static libs set(KX_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib/static/c.o) set(EMA_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib/static/libema.a) set(XML_LIB ${CMAKE_CURRENT_SOURCE_DIR}/lib/static/libxml2.a) # shared libs set(RSSL_LIB rssl) set(RSSLVA_LIB rsslVA) set(ZMQ_LIB zmq) set(PROTOBUF_LIB protobuf) set(SYSTEM_LIBRARIES rt dl pthread m stdc++) # .so link_directories(lib) link_directories(lib/shared) # .h include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ema) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/kdb) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/email) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/zmq) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/config) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/main/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/generated/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ema/Rdm/Include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ema/Access/Include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/ema/Access/Impl) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Codec) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Ansi) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Converter) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Util) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/RDM) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Reactor) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Include/Transport) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Util/Include) # .cpp aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/main/src SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src/generated/src SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/kdb SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/email SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/config SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/ema/Rdm/Impl SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/ema/Access/Impl SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Codec SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Ansi SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Converter SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Util SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/RDM SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Reactor SRC_LIST) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/include/eta/Impl/Transport SRC_LIST) add_executable(MDS2 ${SRC_LIST}) target_link_libraries(MDS2 ${EMA_LIB} ${SYSTEM_LIBRARIES} ${KX_LIB} ${RSSL_LIB} ${RSSLVA_LIB} ${XML_LIB} ${ZMQ_LIB} ${PROTOBUF_LIB}) # libzmq.so libprotobuf.a