1+ cmake_minimum_required ( VERSION 3.14 )
2+
3+ find_package (Libevent REQUIRED )
4+ include_directories (${LIBEVENT_INCLUDE_DIR} )
5+
6+ include ( ${SENTINEL_ROOT_DIR} /cmake/third_party.cmake )
7+
8+ include_directories ( ${SENTINEL_ROOT_DIR} )
9+
10+ include_directories (${SENTINEL_CORE_ROOT_DIR} /common )
11+ include_directories (${SENTINEL_CORE_ROOT_DIR} /config )
12+ include_directories (${SENTINEL_CORE_ROOT_DIR} /property )
13+ include_directories (${SENTINEL_CORE_ROOT_DIR} /public )
14+
15+ # common
16+ file (GLOB COMMON_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /common/*.cc" )
17+ file (GLOB COMMON_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /common/*_test.cc" )
18+ list (REMOVE_ITEM COMMON_SOURCE_FILES ${COMMON_TEST_SOURCE_FILES} )
19+
20+ # config
21+ file (GLOB CONFIG_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /config/*.cc" )
22+ file (GLOB CONFIG_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /config/*_test.cc" )
23+ list (REMOVE_ITEM CONFIG_SOURCE_FILES ${CONFIG_TEST_SOURCE_FILES} )
24+
25+ # log
26+ file (GLOB_RECURSE LOG_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /log/*.cc" )
27+ file (GLOB_RECURSE LOG_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /log/*_test.cc" )
28+ list (REMOVE_ITEM LOG_SOURCE_FILES ${LOG_TEST_SOURCE_FILES} )
29+
30+ # utils
31+ file (GLOB UTILS_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /utils/*.cc" )
32+ # file(GLOB UTILS_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR}/utils/*test.cc")
33+ # list(REMOVE_ITEM UTILS_SOURCE_FILES ${UTILS_TEST_SOURCE_FILES})
34+
35+ # slot
36+ file (GLOB_RECURSE SLOT_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /slot/*.cc" )
37+ file (GLOB_RECURSE SLOT_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /slot/*_test.cc" )
38+ list (REMOVE_ITEM SLOT_SOURCE_FILES ${SLOT_TEST_SOURCE_FILES} )
39+
40+ # statistic
41+ file (GLOB_RECURSE STATISTIC_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /statistic/*.cc" )
42+ file (GLOB_RECURSE STATISTIC_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /statistic/*_test.cc" )
43+ list (REMOVE_ITEM STATISTIC_SOURCE_FILES ${STATISTIC_TEST_SOURCE_FILES} )
44+
45+ # transport
46+ file (GLOB_RECURSE TRANSPORT_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /transport/*.cc" )
47+ file (GLOB_RECURSE TRANSPORT_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /transport/*_test.cc" )
48+ list (REMOVE_ITEM TRANSPORT_SOURCE_FILES ${TRANSPORT_TEST_SOURCE_FILES} )
49+
50+ # flow
51+ file (GLOB FLOW_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /flow/*.cc" )
52+ file (GLOB FLOW_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /flow/*_test.cc" )
53+ list (REMOVE_ITEM FLOW_SOURCE_FILES ${FLOW_TEST_SOURCE_FILES} )
54+
55+ # circuitbreaker
56+ file (GLOB CIRCUIT_BREAKER_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /circuitbreaker/*.cc" )
57+ file (GLOB CIRCUIT_BREAKER_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /circuitbreaker/*_test.cc" )
58+ list (REMOVE_ITEM CIRCUIT_BREAKER_SOURCE_FILES ${CIRCUIT_BREAKER_TEST_SOURCE_FILES} )
59+
60+ # param
61+ file (GLOB_RECURSE PARAM_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /param/*.cc" )
62+ file (GLOB_RECURSE PARAM_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /param/*_test.cc" )
63+ list (REMOVE_ITEM PARAM_SOURCE_FILES ${PARAM_TEST_SOURCE_FILES} )
64+
65+ # system
66+ file (GLOB_RECURSE SYSTEM_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /system/*.cc" )
67+ file (GLOB_RECURSE SYSTEM_TEST_SOURCE_FILES "${SENTINEL_CORE_ROOT_DIR} /system/*_test.cc" )
68+ list (REMOVE_ITEM SYSTEM_SOURCE_FILES ${SYSTEM_TEST_SOURCE_FILES} )
69+
70+ list (APPEND
71+ SENTINEL_SOURCE_FILES
72+ ${COMMON_SOURCE_FILES}
73+ ${CONFIG_SOURCE_FILES}
74+ ${LOG_SOURCE_FILES}
75+ ${UTILS_SOURCE_FILES}
76+ ${SLOT_SOURCE_FILES}
77+ ${STATISTIC_SOURCE_FILES}
78+ ${TRANSPORT_SOURCE_FILES}
79+ ${FLOW_SOURCE_FILES}
80+ ${CIRCUIT_BREAKER_SOURCE_FILES}
81+ ${PARAM_SOURCE_FILES}
82+ ${SYSTEM_SOURCE_FILES} )
83+
84+ add_library (sentinel STATIC ${SENTINEL_SOURCE_FILES} )
85+
86+ target_link_libraries (sentinel PUBLIC
87+ libevent::core
88+ libevent::extra
89+ libevent::pthreads
90+ TBB::tbb
91+ spdlog
92+ absl::flat_hash_set
93+ absl::str_format
94+ absl::synchronization
95+ absl::strings
96+ absl::any )
0 commit comments