2 add_library ( mod_auth_ao MODULE authorization/ao/ao.cpp )
3 target_link_libraries ( mod_auth_ao scriptexecuter logger common )
4 set_target_properties ( mod_auth_ao PROPERTIES PREFIX "" )
7 set_target_properties ( mod_auth_ao PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
9 if ( INCLUDE_WHAT_YOU_USE_EXE )
10 set_target_properties ( mod_auth_ao PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
12 endif ( BUILD_MOD_AO )
14 if ( BUILD_MOD_RADIUS )
15 find_package ( Boost REQUIRED )
17 add_library ( mod_radius MODULE other/radius/radius.cpp
18 other/radius/server.cpp
19 other/radius/config.cpp)
20 target_link_libraries ( mod_radius PRIVATE scriptexecuter logger common )
21 set_target_properties ( mod_radius PROPERTIES PREFIX "" )
23 include ( ExternalProject )
25 ExternalProject_Add ( async-radius
26 GIT_REPOSITORY https://github.com/madf/async-radius.git
30 CMAKE_ARGS -DCMAKE_CXX_FLAGS=-fPIC )
32 ExternalProject_Get_property ( async-radius SOURCE_DIR BINARY_DIR )
34 target_include_directories ( mod_radius PRIVATE "${SOURCE_DIR}/include" )
35 target_link_directories ( mod_radius PRIVATE "${BINARY_DIR}/src" )
37 add_dependencies ( mod_radius async-radius )
39 find_package ( OpenSSL 1.0.0 REQUIRED )
40 target_link_libraries ( mod_radius PRIVATE radproto Boost::boost OpenSSL::Crypto)
43 set_target_properties ( mod_radius PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
45 if ( INCLUDE_WHAT_YOU_USE_EXE )
46 set_target_properties ( mod_radius PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
48 endif ( BUILD_MOD_RADIUS )
51 add_library ( mod_auth_ia MODULE authorization/inetaccess/inetaccess.cpp )
52 target_link_libraries ( mod_auth_ia scriptexecuter crypto logger common )
53 set_target_properties ( mod_auth_ia PROPERTIES PREFIX "" )
54 if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
55 set_target_properties ( mod_auth_ia PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
56 endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
59 set_target_properties ( mod_auth_ia PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
61 if ( INCLUDE_WHAT_YOU_USE_EXE )
62 set_target_properties ( mod_auth_ia PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
64 endif ( BUILD_MOD_IA )
66 if ( BUILD_MOD_CAP_NF )
67 add_library ( mod_cap_nf MODULE capture/cap_nf/cap_nf.cpp )
68 target_link_libraries ( mod_cap_nf logger common )
69 set_target_properties ( mod_cap_nf PROPERTIES PREFIX "" )
72 set_target_properties ( mod_cap_nf PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
74 if ( INCLUDE_WHAT_YOU_USE_EXE )
75 set_target_properties ( mod_cap_nf PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
77 endif ( BUILD_MOD_CAP_NF )
79 if ( BUILD_MOD_CAP_DIVERT )
80 add_library ( mod_cap_divert MODULE capture/divert_freebsd/divert_cap.cpp )
81 target_link_libraries ( mod_cap_divert logger common )
82 set_target_properties ( mod_cap_divert PROPERTIES PREFIX "" )
85 set_target_properties ( mod_cap_divert PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
87 if ( INCLUDE_WHAT_YOU_USE_EXE )
88 set_target_properties ( mod_cap_divert PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
90 endif ( BUILD_MOD_CAP_DIVERT )
92 if ( BUILD_MOD_CAP_ETHER_FREEBSD )
93 add_library ( mod_cap_bpf MODULE capture/ether_freebsd/ether_cap.cpp )
94 target_link_libraries ( mod_cap_bpf logger common )
95 set_target_properties ( mod_cap_bpf PROPERTIES PREFIX "" )
98 set_target_properties ( mod_cap_bpf PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
100 if ( INCLUDE_WHAT_YOU_USE_EXE )
101 set_target_properties ( mod_cap_bpf PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
103 endif ( BUILD_MOD_CAP_ETHER_FREEBSD )
105 if ( BUILD_MOD_CAP_ETHER_LINUX )
106 add_library ( mod_cap_ether MODULE capture/ether_linux/ether_cap.cpp )
107 target_link_libraries ( mod_cap_ether logger common )
108 set_target_properties ( mod_cap_ether PROPERTIES PREFIX "" )
110 if ( CLANG_TIDY_EXE )
111 set_target_properties ( mod_cap_ether PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
113 if ( INCLUDE_WHAT_YOU_USE_EXE )
114 set_target_properties ( mod_cap_ether PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
116 endif ( BUILD_MOD_CAP_ETHER_LINUX )
118 if ( BUILD_MOD_CAP_PCAP )
119 find_package ( PCap REQUIRED )
120 add_library ( mod_cap_pcap MODULE capture/pcap/pcap_cap.cpp )
121 target_link_libraries ( mod_cap_pcap logger common PCap::PCap )
122 set_target_properties ( mod_cap_pcap PROPERTIES PREFIX "" )
124 if ( CLANG_TIDY_EXE )
125 set_target_properties ( mod_cap_pcap PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
127 if ( INCLUDE_WHAT_YOU_USE_EXE )
128 set_target_properties ( mod_cap_pcap PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
130 endif ( BUILD_MOD_CAP_PCAP )
132 if ( BUILD_MOD_CAP_NFQUEUE )
133 find_package ( NFQueue REQUIRED )
134 find_package ( NFNetLink REQUIRED )
135 find_package ( MNL REQUIRED )
136 add_library ( mod_cap_nfqueue MODULE capture/nfqueue/nfqueue.cpp )
137 target_link_libraries ( mod_cap_nfqueue logger common NF::Queue NF::NetLink MNL::MNL )
138 set_target_properties ( mod_cap_nfqueue PROPERTIES PREFIX "" )
140 if ( CLANG_TIDY_EXE )
141 set_target_properties ( mod_cap_nfqueue PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
143 if ( INCLUDE_WHAT_YOU_USE_EXE )
144 set_target_properties ( mod_cap_nfqueue PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
146 endif ( BUILD_MOD_CAP_NFQUEUE )
148 if ( BUILD_MOD_SGCONFIG )
149 find_package ( EXPAT REQUIRED )
150 add_library ( mod_conf_sg MODULE configuration/sgconfig/stgconfig.cpp
151 configuration/sgconfig/conn.cpp
152 configuration/sgconfig/configproto.cpp
153 configuration/sgconfig/parser.cpp
154 configuration/sgconfig/parser_tariffs.cpp
155 configuration/sgconfig/parser_admins.cpp
156 configuration/sgconfig/parser_users.cpp
157 configuration/sgconfig/parser_services.cpp
158 configuration/sgconfig/parser_message.cpp
159 configuration/sgconfig/parser_auth_by.cpp
160 configuration/sgconfig/parser_user_info.cpp
161 configuration/sgconfig/parser_server_info.cpp )
162 target_link_libraries ( mod_conf_sg scriptexecuter crypto logger common EXPAT::EXPAT )
163 set_target_properties ( mod_conf_sg PROPERTIES PREFIX "" )
164 if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
165 set_target_properties ( mod_conf_sg PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
166 endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
168 if ( CLANG_TIDY_EXE )
169 set_target_properties ( mod_conf_sg PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
171 if ( INCLUDE_WHAT_YOU_USE_EXE )
172 set_target_properties ( mod_conf_sg PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
174 endif ( BUILD_MOD_SGCONFIG )
176 if ( BUILD_MOD_RPCCONFIG )
177 find_package ( XMLRPC 1.58.0 REQUIRED c++2 abyss-server )
178 try_compile ( XMLRPC_C_NO_AUTO_PTR ${CMAKE_CURRENT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/checks/xmlrpc-c-auto_ptr.cpp" CMAKE_FLAGS -DINCLUDE_DIRECTORIES=${XMLRPC_INCLUDE_DIRS} LINK_LIBRARIES ${XMLRPC_LIBRARIES} OUTPUT_VARIABLE TRY_COMPILE_OUTPUT )
179 if ( NOT XMLRPC_C_NO_AUTO_PTR )
180 message ( WARNING ${TRY_COMPILE_OUTPUT} )
181 message ( FATAL_ERROR "Your version of XMLRPC-C library can not be used with C++17. Try upgrading to at least 1.58.0." )
183 include_directories ( ${XMLRPC_INCLUDE_DIRS} )
184 add_library ( mod_conf_rpc MODULE configuration/rpcconfig/rpcconfig.cpp
185 configuration/rpcconfig/user_helper.cpp
186 configuration/rpcconfig/tariff_helper.cpp
187 configuration/rpcconfig/info_methods.cpp
188 configuration/rpcconfig/users_methods.cpp
189 configuration/rpcconfig/tariffs_methods.cpp
190 configuration/rpcconfig/admins_methods.cpp
191 configuration/rpcconfig/messages_methods.cpp )
192 target_link_libraries ( mod_conf_rpc scriptexecuter logger common ${XMLRPC_LIBRARIES} )
193 set_target_properties ( mod_conf_rpc PROPERTIES PREFIX "" )
194 if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
195 set_target_properties ( mod_conf_rpc PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
196 endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
198 if ( CLANG_TIDY_EXE )
199 set_target_properties ( mod_conf_rpc PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
201 if ( INCLUDE_WHAT_YOU_USE_EXE )
202 set_target_properties ( mod_conf_rpc PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
204 endif ( BUILD_MOD_RPCCONFIG )
206 if ( BUILD_MOD_PING )
207 add_library ( mod_ping MODULE other/ping/ping.cpp )
208 target_link_libraries ( mod_ping scriptexecuter logger pinger common )
209 set_target_properties ( mod_ping PROPERTIES PREFIX "" )
211 if ( CLANG_TIDY_EXE )
212 set_target_properties ( mod_ping PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
214 if ( INCLUDE_WHAT_YOU_USE_EXE )
215 set_target_properties ( mod_ping PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
217 endif ( BUILD_MOD_PING )
219 if ( BUILD_MOD_RSCRYPT )
220 add_library ( mod_remote_script MODULE other/rscript/rscript.cpp other/rscript/nrmap_parser.cpp )
221 target_link_libraries ( mod_remote_script crypto scriptexecuter logger common )
222 set_target_properties ( mod_remote_script PROPERTIES PREFIX "" )
223 if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
224 set_target_properties ( mod_remote_script PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
225 endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
227 if ( CLANG_TIDY_EXE )
228 set_target_properties ( mod_remote_script PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
230 if ( INCLUDE_WHAT_YOU_USE_EXE )
231 set_target_properties ( mod_remote_script PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
233 endif ( BUILD_MOD_RSCRYPT )
235 if ( BUILD_MOD_SMUX )
236 add_library ( mod_smux MODULE other/smux/smux.cpp
237 other/smux/sensors.cpp
238 other/smux/tables.cpp
239 other/smux/handlers.cpp
241 other/smux/types.cpp )
242 target_link_libraries ( mod_smux scriptexecuter logger smux common )
243 set_target_properties ( mod_smux PROPERTIES PREFIX "" )
245 if ( CLANG_TIDY_EXE )
246 set_target_properties ( mod_smux PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
248 if ( INCLUDE_WHAT_YOU_USE_EXE )
249 set_target_properties ( mod_smux PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
251 endif ( BUILD_MOD_SMUX )
253 if ( BUILD_MOD_STORE_FILES )
254 add_library ( mod_store_files MODULE store/files/file_store.cpp )
255 target_link_libraries ( mod_store_files crypto conffiles logger common )
256 set_target_properties ( mod_store_files PROPERTIES PREFIX "" )
258 if ( CLANG_TIDY_EXE )
259 set_target_properties ( mod_store_files PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
261 if ( INCLUDE_WHAT_YOU_USE_EXE )
262 set_target_properties ( mod_store_files PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
264 endif ( BUILD_MOD_STORE_FILES )
266 if ( BUILD_MOD_STORE_FIREBIRD )
267 find_package ( FBClient REQUIRED )
268 add_library ( mod_store_firebird MODULE store/firebird/firebird_store.cpp
269 store/firebird/firebird_store_admins.cpp
270 store/firebird/firebird_store_corporations.cpp
271 store/firebird/firebird_store_messages.cpp
272 store/firebird/firebird_store_services.cpp
273 store/firebird/firebird_store_tariffs.cpp
274 store/firebird/firebird_store_users.cpp
275 store/firebird/firebird_store_utils.cpp )
276 target_link_libraries ( mod_store_firebird crypto common logger ibpp FBClient::FBClient )
277 set_target_properties ( mod_store_firebird PROPERTIES PREFIX "" )
279 if ( CLANG_TIDY_EXE )
280 set_target_properties ( mod_store_firebird PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
282 if ( INCLUDE_WHAT_YOU_USE_EXE )
283 set_target_properties ( mod_store_firebird PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
285 endif ( BUILD_MOD_STORE_FIREBIRD )
287 if ( BUILD_MOD_STORE_MYSQL )
288 find_package ( MySQLConnector REQUIRED )
289 add_library ( mod_store_mysql MODULE store/mysql/mysql_store.cpp )
290 target_link_libraries ( mod_store_mysql crypto logger common MySQL::Connector )
291 set_target_properties ( mod_store_mysql PROPERTIES PREFIX "" )
293 if ( CLANG_TIDY_EXE )
294 set_target_properties ( mod_store_mysql PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
296 if ( INCLUDE_WHAT_YOU_USE_EXE )
297 set_target_properties ( mod_store_mysql PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
299 endif ( BUILD_MOD_STORE_MYSQL )
301 if ( BUILD_MOD_STORE_POSTGRESQL )
302 find_package ( PostgreSQL REQUIRED )
303 include_directories ( ${PostgreSQL_INCLUDE_DIRS} )
304 add_library ( mod_store_postgresql MODULE store/postgresql/postgresql_store.cpp
305 store/postgresql/postgresql_store_admins.cpp
306 store/postgresql/postgresql_store_corporations.cpp
307 store/postgresql/postgresql_store_messages.cpp
308 store/postgresql/postgresql_store_services.cpp
309 store/postgresql/postgresql_store_tariffs.cpp
310 store/postgresql/postgresql_store_users.cpp
311 store/postgresql/postgresql_store_utils.cpp )
312 target_link_libraries ( mod_store_postgresql crypto logger common ${PostgreSQL_LIBRARIES} )
313 set_target_properties ( mod_store_postgresql PROPERTIES PREFIX "" )
314 if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
315 set_target_properties ( mod_store_postgresql PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
316 endif ( ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" )
318 if ( CLANG_TIDY_EXE )
319 set_target_properties ( mod_store_postgresql PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
321 if ( INCLUDE_WHAT_YOU_USE_EXE )
322 set_target_properties ( mod_store_postgresql PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
324 endif ( BUILD_MOD_STORE_POSTGRESQL )