-
Notifications
You must be signed in to change notification settings - Fork 159
/
Copy pathCMakeLists.txt
136 lines (117 loc) · 6.37 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
project(auto_trade_machine)
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
message(${PROJECT_SOURCE_DIR})
message(${PROJECT_BINARY_DIR})
set (VERSION_MAJOR 1)
set (VERSION_MINOR 0)
configure_file (
"${PROJECT_SOURCE_DIR}/common/config.h.in"
"${PROJECT_BINARY_DIR}/common/config.h"
)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
set(BOOST_THREAD "boost_thread-mt")
else()
set(BOOST_THREAD "boost_thread")
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
set(CMAKE_BUILD_TYPE "Release")
include_directories("${PROJECT_SOURCE_DIR}/common")
include_directories("${PROJECT_SOURCE_DIR}/common/trade_headers")
include_directories("${PROJECT_SOURCE_DIR}/trade/md_plugins")
include_directories("${PROJECT_SOURCE_DIR}/trade/trade_plugins")
include_directories("${PROJECT_SOURCE_DIR}/common/tick")
set(libs dl boost_system boost_filesystem pthread boost_thread boost_date_time boost_serialization boost_log_setup boost_log)
add_definitions(-DBOOST_SPIRIT_THREADSAFE)
add_definitions(-DBOOST_ALL_DYN_LINK)
message(STATUS "${BOOST_THREAD}")
add_definitions(-DBOOST_SPIRIT_THREADSAFE)
find_package(Boost REQUIRED COMPONENTS regex system thread serialization date_time)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
if(NOT Boost_FOUND)
message("Can not find Boost")
endif()
message(STATUS "Found Boost IncPath ${Boost_INCLUDE_DIRS}")
message(STATUS "Found Boost LibPath ${Boost_LIBRARY_DIRS}")
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
include_directories(${PROJECT_SOURCE_DIR}/trade)
add_library(trade_service trade/connection.cpp trade/io_service_pool.cpp trade/server.cpp trade/trade_service.cpp)
#add_library(io_service_pool trade/io_service_pool.cpp)
#add_library(server trade/server.cpp)
#add_library(trade_service trade/trade_service.cpp)
#target_link_libraries(trade_service server io_service_pool connection)
option (CTP_FUTURE_MDPlugin "Support CTP quotation" ON)
option (CTP_FUTURE_TDPlugin "Support CTP trade" ON)
option (DFITC_SOP_MDPlugin "Support DFITC quotation" ON)
option (DFITC_SOP_TDPlugin "Support DFITC trade" ON)
option (FEMAS_FUTURE_MDPlugin "Support FEMAS quotation" OFF)
option (FEMAS_FUTURE_TDPlugin "Support FEMAS trade" OFF)
add_library(autopend STATIC common/AutoPend.cpp)
###################### CTP ##########################################
include_directories("${PROJECT_SOURCE_DIR}/third/CTPForLinux32/")
link_directories("${PROJECT_SOURCE_DIR}/third/CTPForLinux32/")
if (CTP_FUTURE_MDPlugin)
#add_definitions(-DCTP_FUTURE_MDPlugin)
set(ctp_md_plugpath "${PROJECT_SOURCE_DIR}/trade/md_plugins/CTP_FUTURE_MDPlugin")
include_directories("${ctp_md_plugpath}")
add_library(ctp_future_mdplugin ${ctp_md_plugpath}/CTP_FUTURE_MDPlugin.cpp )
target_link_libraries(ctp_future_mdplugin thostmduserapi)
install(FILES "${PROJECT_SOURCE_DIR}/third/CTPForLinux32/libthostmduserapi.so" DESTINATION bin)
endif (CTP_FUTURE_MDPlugin)
if (CTP_FUTURE_TDPlugin)
#add_definitions(-DCTP_FUTURE_TDPlugin)
set(ctp_td_plugpath "${PROJECT_SOURCE_DIR}/trade/trade_plugins/CTP_FUTURE_TDPlugin")
include_directories("${ctp_td_plugpath}")
add_library(ctp_future_tdplugin ${ctp_td_plugpath}/CTP_FUTURE_TDPlugin.cpp)
target_link_libraries(ctp_future_tdplugin thosttraderapi)
install(FILES "${PROJECT_SOURCE_DIR}/third/CTPForLinux32/libthosttraderapi.so" DESTINATION bin)
endif (CTP_FUTURE_TDPlugin)
####################### DFITC ########################################
include_directories("${PROJECT_SOURCE_DIR}/third/DfitcForLinux64/")
link_directories("${PROJECT_SOURCE_DIR}/third/DfitcForLinux64")
if (DFITC_SOP_MDPlugin)
#add_definitions(-DDFITC_SOP_MDPlugin)
set(dfitc_sop_mdplugpath "${PROJECT_SOURCE_DIR}/trade/md_plugins/DFITC_SOP_MDPlugin")
include_directories("${dfitc_sop_mdplugpath}")
add_library(dfitc_sop_mdplugin ${dfitc_sop_mdplugpath}/DFITC_SOP_MDPlugin.cpp)
target_link_libraries(dfitc_sop_mdplugin DFITCSECMdApi)
install(FILES "${PROJECT_SOURCE_DIR}/third/DfitcForLinux64/libDFITCSECMdApi.so" DESTINATION bin)
endif (DFITC_SOP_MDPlugin)
if (DFITC_SOP_TDPlugin)
#add_definitions(-DDFITC_SOP_TDPlugin)
set(dfitc_sop_tdplugpath "${PROJECT_SOURCE_DIR}/trade/trade_plugins/DFITC_SOP_TDPlugin")
include_directories("${dfitc_sop_tdplugpath}")
add_library(dfitc_sop_tdplugin ${dfitc_sop_tdplugpath}/DFITC_SOP_TDPlugin.cpp)
target_link_libraries(dfitc_sop_tdplugin DFITCSECTraderApi)
install(FILES "${PROJECT_SOURCE_DIR}/third/DfitcForLinux64/libDFITCSECTraderApi.so" DESTINATION bin)
endif (DFITC_SOP_TDPlugin)
####################### FEMAS ##########################################
include_directories("${PROJECT_SOURCE_DIR}third/Femas/")
link_directories("${PROJECT_SOURCE_DIR}/third/Femas/")
if (FEMAS_FUTURE_MDPlugin)
#add_definitions(-DFEMAS_FUTURE_MDPlugin)
set(femas_future_mdplugpath "${PROJECT_SOURCE_DIR}/trade/md_plugins/FEMAS_FUTURE_MDPlugin")
include_directories("${femas_future_mdplugpath}")
add_library(femas_future_mdplugin STATIC ${femas_future_mdplugpath}/FEMAS_FUTURE_MDPlugin.cpp)
target_link_libraries(femas_future_mdplugin "${PROJECT_SOURCE_DIR}third/Femas/libUSTPmduserapi.so")
install(FILES "${PROJECT_SOURCE_DIR}/third/Femas/libUSTPmduserapi.so" DESTINATION bin)
endif (FEMAS_FUTURE_MDPlugin)
if (FEMAS_FUTURE_TDPlugin)
#add_definitions(-DFEMAS_FUTURE_TDPlugin)
set(femas_future_tdplugpath "${PROJECT_SOURCE_DIR}/trade/trade_plugins/FEMAS_FUTURE_TDPlugin")
include_directories("${femas_future_tdplugpath}")
add_library(femas_future_tdplugin STATIC ${femas_future_tdplugpath}/FEMAS_FUTURE_TDPlugin.cpp)
target_link_libraries(femas_future_tdplugin "${PROJECT_SOURCE_DIR}third/Femas/libUSTPtraderapi.so")
install(FILES "${PROJECT_SOURCE_DIR}/third/Femas/libUSTPtraderapi.so" DESTINATION bin)
endif (FEMAS_FUTURE_TDPlugin)
#################### thunder-trader
add_executable(thunder-trader "${PROJECT_SOURCE_DIR}/trade/main.cpp")
target_link_libraries(thunder-trader ${libs} trade_service ctp_future_mdplugin ctp_future_tdplugin dfitc_sop_mdplugin dfitc_sop_tdplugin autopend)
install (TARGETS thunder-trader DESTINATION bin)