@@ -19,23 +19,35 @@ if(UNIX) # Darwing or Linux
1919
2020 find_package (Boost REQUIRED COMPONENTS system thread log program_options chrono)
2121 find_package (Threads REQUIRED)
22+ find_package (absl REQUIRED)
2223
2324 # cpprest
2425 find_path (CPPREST_INCLUDE_DIR NAMES cpprest/http_client.h cpprest/http_msg.h)
2526 find_library (CPPREST_LIBRARY NAMES cpprest)
2627 message (CPPREST_INCLUDE_DIR " ${CPPREST_INCLUDE_DIR} " )
2728 message (CPPREST_LIBRARY " ${CPPREST_LIBRARY} " )
28-
29-
29+
30+ set (Protobuf_INCLUDE_DIR "/usr/local/opt/protobuf/include" )
31+ set (Protobuf_LIBRARY "/usr/local/opt/protobuf/lib/libprotobuf.dylib" )
32+ set (Protobuf_PROTOC_LIBRARY "/usr/local/opt/protobuf/lib/libprotoc.dylib" )
33+ set (Protobuf_PROTOC_EXECUTABLE "/usr/local/opt/protobuf/bin/protoc" )
34+
35+ # 查找 Protobuf 包
36+ find_package (Protobuf REQUIRED)
37+ message (STATUS "Protobuf version: ${Protobuf_VERSION} " )
38+ message (STATUS "Protobuf include dir: ${Protobuf_INCLUDE_DIR} " )
39+ message (STATUS "Protobuf libraries: ${Protobuf_LIBRARY} " )
3040
3141 if (APPLE )
32- # Prefer a homebrew version of OpenSSL over the one in /usr/lib
3342 # file(GLOB OPENSSL_ROOT_DIR /usr/local/Cellar/openssl*/*)
3443 file (GLOB OPENSSL_ROOT_DIR /usr/local/opt/openssl/* /opt/homebrew/Cellar/openssl@3/*)
3544 # Prefer the latest (make the latest one first)
3645 list (REVERSE OPENSSL_ROOT_DIR)
3746
3847 find_package (OpenSSL REQUIRED)
48+ message (OPENSSL_ROOT_DIR " ${OPENSSL_ROOT_DIR} " )
49+ message (OPENSSL_LIBRARIES " ${OPENSSL_LIBRARIES} " )
50+
3951# set(OPENSSL_VERSION "1.1.1q")
4052
4153 set (ZLIB_LIBRARY /opt/homebrew/Cellar/zlib/1.2.13/lib/libz.dylib )
@@ -57,7 +69,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
5769
5870 message ("-- configuring clang options" )
5971# set(CMAKE_CXX_FLAGS "-arch x86_64 -std=c++11 -stdlib=libc++ -DBOOST_LOG_DYN_LINK -Wno-deprecated-declarations")
60- set (CMAKE_CXX_FLAGS "-arch arm64 -std=c++11 -stdlib=libc++ -DBOOST_LOG_DYN_LINK -Wno-deprecated-declarations" )
72+ set (CMAKE_CXX_FLAGS "-arch arm64 -std=c++14 -stdlib=libc++ -DBOOST_LOG_DYN_LINK -Wno-deprecated-declarations" )
6173
6274elseif (CMAKE_CXX_COMPILER_ID MATCHES "GNU" )
6375
@@ -69,29 +81,24 @@ endif()
6981
7082# Project construction ...
7183# src files ...
72- file (GLOB MY_SOURCE_FILES "include/cpprest/*.h" "include/cpprest/details/*.h" )
73- add_library (${PROJECT_NAME}
74- src/tiger_client.cpp include /tigerapi/tiger_client.h include /tigerapi/constants.h
75- include /tigerapi/utils.h src/utils.cpp include /tigerapi/service_types.h include /tigerapi/quote_client.h
76- src/quote_client.cpp src/trade_client.cpp include /tigerapi/model.h src/order_util.cpp
77- include /tigerapi/order_util.h src/contract_util.cpp include /tigerapi/contract_util.h
78- include /tigerapi/client_config.h include /tigerapi/sign_util.h
79- include /tigerapi/easylogging++.h cpprest/ src/easylogging++.cc ${MY_SOURCE_FILES} )
84+ file (GLOB MY_SOURCE_FILES "include/cpprest/*.h" "include/cpprest/details/*.h" "include/openapi_pb/pb_source/*.*"
85+ "include/tigerapi/push_socket/*.h" "include/tigerapi/*.h" "src/*.cpp" "src/push_socket/*.cpp" )
86+ add_library (${PROJECT_NAME} cpprest/ ${MY_SOURCE_FILES} )
87+ message (MY_SOURCE_FILES " ${MY_SOURCE_FILES} " )
88+ # 确保生成动态库
89+ set_target_properties (${PROJECT_NAME} PROPERTIES
90+ SOVERSION ${PROJECT_VERSION}
91+ VERSION ${PROJECT_VERSION}
92+ )
8093
8194# headers search paths ...
8295#set(HEADER_SEARCH_PATHS ${CPPREST_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})
83- set (HEADER_SEARCH_PATHS ${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR} )
96+ set (HEADER_SEARCH_PATHS ${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR} )
8497
85- # library search paths ...
86- if (APPLE )
87- set (OPENSSL_LIBS "${OPENSSL_LIBRARIES} " )
88- # set(ZIP_LIBRARY ZLIB::ZLIB)
8998
90- set (LIBRARIES_SEARCH_PATHS ${OPENSSL_LIBS} ${Boost_LIBRARIES} ${CPPREST_LIBRARY} ${ZIP_LIBRARY} )
91- else ()
92- set (OPENSSL_LIBS "${OPENSSL_LIBRARIES} " )
93- set (LIBRARIES_SEARCH_PATHS ${CPPREST_LIBRARY} ${OPENSSL_LIBS} ${Boost_LIBRARIES} ${ZIP_LIBRARY} )
94- endif ()
99+ set (OPENSSL_LIBS "${OPENSSL_LIBRARIES} " )
100+ set (LIBRARIES_SEARCH_PATHS ${OPENSSL_LIBS} ${Boost_LIBRARIES} ${CPPREST_LIBRARY} ${ZIP_LIBRARY} ${Protobuf_LIBRARY} ${Protobuf_PROTOC_LIBRARY} )
101+
95102
96103message (BOOST_LIBS " ${Boost_LIBRARIES} " )
97104message (OPENSSL_LIBS " ${OPENSSL_LIBRARIES} " )
@@ -101,22 +108,32 @@ message(LIBRARIES_SEARCH_PATHS " ${LIBRARIES_SEARCH_PATHS}")
101108
102109include_directories (${HEADER_SEARCH_PATHS} )
103110if (APPLE )
104- target_link_libraries (${PROJECT_NAME} "-framework CoreFoundation" )
105- target_link_libraries (${PROJECT_NAME} "-framework Security" )
106- target_link_libraries (${PROJECT_NAME} ${LIBRARIES_SEARCH_PATHS} )
107- set_target_properties (${PROJECT_NAME} PROPERTIES LINK_FLAGS "-W1, -F/Library/Frameworks " )
111+ target_link_libraries (${PROJECT_NAME} PRIVATE
112+ "-framework CoreFoundation"
113+ "-framework Security"
114+ ${LIBRARIES_SEARCH_PATHS}
115+ absl::base
116+ absl::utility
117+ )
118+ set_target_properties (${PROJECT_NAME} PROPERTIES
119+ LINK_FLAGS "-W1, -F/Library/Frameworks"
120+ )
108121else ()
109- target_link_libraries (${PROJECT_NAME} ${LIBRARIES_SEARCH_PATHS} )
110- target_link_libraries (${PROJECT_NAME} OpenSSL::SSL OpenSSL::Crypto)
111-
122+ target_link_libraries (${PROJECT_NAME} PRIVATE
123+ ${LIBRARIES_SEARCH_PATHS}
124+ OpenSSL::SSL
125+ OpenSSL::Crypto
126+ )
112127endif ()
113128
114129
115130
116131
117132install (DIRECTORY include /
118133 DESTINATION "include"
119- FILES_MATCHING PATTERN "*.h"
134+ FILES_MATCHING
135+ PATTERN "*.h"
136+ # PATTERN "*.cc"
120137 )
121138
122139install (TARGETS ${PROJECT_NAME}
0 commit comments