snort: snort3 plugin and DAQ
[vpp.git] / src / plugins / snort / CMakeLists.txt
1 # SPDX-License-Identifier: Apache-2.0
2 # Copyright(c) 2021 Cisco Systems, Inc.
3
4 add_vpp_plugin(snort
5   SOURCES
6   enqueue.c
7   dequeue.c
8   main.c
9   cli.c
10
11   MULTIARCH_SOURCES
12   enqueue.c
13   dequeue.c
14
15   COMPONENT
16   vpp-plugin-snort
17 )
18
19 # DAQ
20
21 find_path(LIBDAQ_INCLUDE_DIR NAMES daq_module_api.h daq_dlt.h daq_version.h)
22
23 if (NOT LIBDAQ_INCLUDE_DIR)
24   message(WARNING "-- libdaq headers not found - snort3 DAQ disabled")
25   return()
26 endif()
27
28 file(STRINGS ${LIBDAQ_INCLUDE_DIR}/daq_version.h daq_version)
29 foreach(l ${daq_version})
30   if (l MATCHES "^#define[\t ]*DAQ_")
31     STRING(REGEX REPLACE "^#define[\t ]*([A-Z1-9_]+)[\t ]*(.+)" "\\1;\\2" v "${l}")
32     list(GET v 0 name)
33     list(GET v 1 value)
34     set(${name} ${value})
35   endif()
36 endforeach()
37
38 set(DAQ_VER "${DAQ_VERSION_MAJOR}.${DAQ_VERSION_MINOR}.${DAQ_VERSION_PATCH}")
39 message(STATUS "libdaq ${DAQ_VER} include files found at ${LIBDAQ_INCLUDE_DIR}")
40
41 if (NOT DAQ_VERSION_MAJOR MATCHES 3)
42   message(WARNING "-- libdaq version not supported - snort3 DAQ disabled")
43   return()
44 endif()
45
46 add_library(daq_vpp SHARED daq_vpp.c)
47 set_target_properties(daq_vpp PROPERTIES SOVERSION ${VPP_LIB_VERSION})
48 target_compile_options (daq_vpp PRIVATE "-fvisibility=hidden")
49 target_compile_options (daq_vpp PRIVATE "-DHAVE_VISIBILITY")
50 target_compile_options (daq_vpp PRIVATE "-I${LIBDAQ_INCLUDE_DIR}")
51 install(TARGETS daq_vpp DESTINATION ${VPP_LIBRARY_DIR}/daq COMPONENT vpp-plugin-snort)
52