-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
109 lines (95 loc) · 3.75 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
cmake_minimum_required(VERSION 3.20)
project("ardp" VERSION 1.0.0 LANGUAGES C CXX)
# 启动对99标准的支持
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED OFF)
set(CMAKE_C_EXTENSIONS OFF)
# 启动对C++11标准的支持
set(CMAKE_CXX_STANDARD 11)
# 显式要求指明支持C++标准
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -lrt -Werror -Wno-unused-result -Wno-unused-function -fstrict-aliasing -Wstrict-aliasing -g")
#set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Werror -Wno-unused-result -Wno-unused-function -fstrict-aliasing -Wstrict-aliasing -g")
#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules;${CMAKE_MODULE_PATH}")
#include(cmake/Modules/libnetfilter_queue.cmake)
include(cmake/Modules/pcap-1.9.0.cmake)
include(cmake/Modules/jansson-2.14.cmake)
include(cmake/Modules/userspace-rcu-0.13.1.cmake)
include(cmake/Modules/pcre2-10.40.cmake)
include(cmake/Modules/hyperscan-5.4.0.cmake)
set(CMAKE_BUILD_TYPE "Release")
# PROJECT_SOURCE_DIR指的是工程顶层目录
include_directories(
"${PROJECT_SOURCE_DIR}"
)
find_package (Threads REQUIRED)
#find_package (URCU REQUIRED)
find_package (NFQ REQUIRED)
if(NFQ_FOUND)
message("libnetfilter_queue found")
else()
message("required libnetfilter_queue not found")
endif()
if(NFQ_FOUND)
message("libnetfilter_queue found")
else()
message("libnetfilter_queue not found")
endif()
add_library(base "")
target_sources(base
PRIVATE
"${CMAKE_SOURCE_DIR}/base/rcu_map.c"
"${CMAKE_SOURCE_DIR}/base/timer_queue.c"
"${CMAKE_SOURCE_DIR}/base/timer_wheel.c"
"${CMAKE_SOURCE_DIR}/base/asm.c"
"${CMAKE_SOURCE_DIR}/base/asn1.c"
"${CMAKE_SOURCE_DIR}/base/bitmap.c"
"${CMAKE_SOURCE_DIR}/base/helper.c"
"${CMAKE_SOURCE_DIR}/base/tree.c"
"${CMAKE_SOURCE_DIR}/base/debug.c"
"${CMAKE_SOURCE_DIR}/base/event_handler.cc"
"${CMAKE_SOURCE_DIR}/base/logger.cc"
)
#target_link_libraries(base ${URCU_LIBRARY})
target_link_libraries(base urcu urcu-cds)
add_library(dpi "")
target_sources(dpi
PRIVATE
"${CMAKE_SOURCE_DIR}/dpi/dpi_parser.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_frag.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_entry.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_packet.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_session.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_policy.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_log.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_msg.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_meter.cc"
"${CMAKE_SOURCE_DIR}/dpi/dpi_debug.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_hs_search.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_sig.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_hyperscan_common.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_search.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_sigopt_basic.cc"
"${CMAKE_SOURCE_DIR}/dpi/sig/dpi_sigopt_pcre.cc"
"${CMAKE_SOURCE_DIR}/dpi/parsers/dpi_http.cc"
"${CMAKE_SOURCE_DIR}/dpi/parsers/dpi_sqlinjection.cc"
)
target_link_libraries(dpi hs pcap jansson ${NFQ_LIBRARY})
target_link_libraries(dpi pcre2-8)
target_link_libraries(dpi base)
add_library(dpthreads "")
target_sources(dpthreads
PRIVATE
"${CMAKE_SOURCE_DIR}/dpthreads/dp_ctrl_thread.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/domain_socket_ctrl_dp.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/domain_socket_ctrl_notify.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/dp_event.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/dp_pkt.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/dp_ring.cc"
"${CMAKE_SOURCE_DIR}/dpthreads/dp_event.cc"
)
target_link_libraries(dpthreads dpi)
add_executable(ardp main.cc)
target_link_libraries(ardp dpi dpthreads)