]> git.stg.codes - stg.git/blob - projects/stargazer/plugins/CMakeLists.txt
Sending attributes from <auth>/send section. (#13)
[stg.git] / projects / stargazer / plugins / CMakeLists.txt
1 if ( BUILD_MOD_AO )
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 "" )
5
6     if ( CLANG_TIDY_EXE )
7         set_target_properties ( mod_auth_ao PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
8     endif ()
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}" )
11     endif ()
12 endif ( BUILD_MOD_AO )
13
14 if ( BUILD_MOD_RADIUS )
15     find_package ( Boost REQUIRED )
16
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 "" )
22
23     include ( ExternalProject )
24
25     ExternalProject_Add ( async-radius
26                           GIT_REPOSITORY https://github.com/madf/async-radius.git
27                           GIT_TAG 1.3.0
28                           GIT_SHALLOW true
29                           INSTALL_COMMAND ""
30                           CMAKE_ARGS -DCMAKE_CXX_FLAGS=-fPIC )
31
32     ExternalProject_Get_property ( async-radius SOURCE_DIR BINARY_DIR )
33
34     target_include_directories ( mod_radius PRIVATE "${SOURCE_DIR}/include" )
35     target_link_directories ( mod_radius PRIVATE "${BINARY_DIR}/src" )
36
37     add_dependencies ( mod_radius async-radius )
38
39     find_package ( OpenSSL 1.0.0 REQUIRED )
40     target_link_libraries ( mod_radius PRIVATE radproto Boost::boost OpenSSL::Crypto)
41
42     if ( CLANG_TIDY_EXE )
43         set_target_properties ( mod_radius PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
44     endif ()
45     if ( INCLUDE_WHAT_YOU_USE_EXE )
46         set_target_properties ( mod_radius PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
47     endif ()
48 endif ( BUILD_MOD_RADIUS )
49
50 if ( BUILD_MOD_IA )
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" )
57
58     if ( CLANG_TIDY_EXE )
59         set_target_properties ( mod_auth_ia PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
60     endif ()
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}" )
63     endif ()
64 endif ( BUILD_MOD_IA )
65
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 "" )
70
71     if ( CLANG_TIDY_EXE )
72         set_target_properties ( mod_cap_nf PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
73     endif ()
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}" )
76     endif ()
77 endif ( BUILD_MOD_CAP_NF )
78
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 "" )
83
84     if ( CLANG_TIDY_EXE )
85         set_target_properties ( mod_cap_divert PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
86     endif ()
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}" )
89     endif ()
90 endif ( BUILD_MOD_CAP_DIVERT )
91
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 "" )
96
97     if ( CLANG_TIDY_EXE )
98         set_target_properties ( mod_cap_bpf PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
99     endif ()
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}" )
102     endif ()
103 endif ( BUILD_MOD_CAP_ETHER_FREEBSD )
104
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 "" )
109
110     if ( CLANG_TIDY_EXE )
111         set_target_properties ( mod_cap_ether PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
112     endif ()
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}" )
115     endif ()
116 endif ( BUILD_MOD_CAP_ETHER_LINUX )
117
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 "" )
123
124     if ( CLANG_TIDY_EXE )
125         set_target_properties ( mod_cap_pcap PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
126     endif ()
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}" )
129     endif ()
130 endif ( BUILD_MOD_CAP_PCAP )
131
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 "" )
139
140     if ( CLANG_TIDY_EXE )
141         set_target_properties ( mod_cap_nfqueue PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
142     endif ()
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}" )
145     endif ()
146 endif ( BUILD_MOD_CAP_NFQUEUE )
147
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" )
167
168     if ( CLANG_TIDY_EXE )
169         set_target_properties ( mod_conf_sg PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
170     endif ()
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}" )
173     endif ()
174 endif ( BUILD_MOD_SGCONFIG )
175
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." )
182     endif ()
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" )
197
198     if ( CLANG_TIDY_EXE )
199         set_target_properties ( mod_conf_rpc PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
200     endif ()
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}" )
203     endif ()
204 endif ( BUILD_MOD_RPCCONFIG )
205
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 "" )
210
211     if ( CLANG_TIDY_EXE )
212         set_target_properties ( mod_ping PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
213     endif ()
214     if ( INCLUDE_WHAT_YOU_USE_EXE )
215         set_target_properties ( mod_ping PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
216     endif ()
217 endif ( BUILD_MOD_PING )
218
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" )
226
227     if ( CLANG_TIDY_EXE )
228         set_target_properties ( mod_remote_script PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
229     endif ()
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}" )
232     endif ()
233 endif ( BUILD_MOD_RSCRYPT )
234
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
240                                   other/smux/utils.cpp
241                                   other/smux/types.cpp )
242     target_link_libraries ( mod_smux scriptexecuter logger smux common )
243     set_target_properties ( mod_smux PROPERTIES PREFIX "" )
244
245     if ( CLANG_TIDY_EXE )
246         set_target_properties ( mod_smux PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
247     endif ()
248     if ( INCLUDE_WHAT_YOU_USE_EXE )
249         set_target_properties ( mod_smux PROPERTIES CXX_INCLUDE_WHAT_YOU_USE "${DO_INCLUDE_WHAT_YOU_USE}" )
250     endif ()
251 endif ( BUILD_MOD_SMUX )
252
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 "" )
257
258     if ( CLANG_TIDY_EXE )
259         set_target_properties ( mod_store_files PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
260     endif ()
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}" )
263     endif ()
264 endif ( BUILD_MOD_STORE_FILES )
265
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 "" )
278
279     if ( CLANG_TIDY_EXE )
280         set_target_properties ( mod_store_firebird PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
281     endif ()
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}" )
284     endif ()
285 endif ( BUILD_MOD_STORE_FIREBIRD )
286
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 "" )
292
293     if ( CLANG_TIDY_EXE )
294         set_target_properties ( mod_store_mysql PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
295     endif ()
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}" )
298     endif ()
299 endif ( BUILD_MOD_STORE_MYSQL )
300
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" )
317
318     if ( CLANG_TIDY_EXE )
319         set_target_properties ( mod_store_postgresql PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}" )
320     endif ()
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}" )
323     endif ()
324 endif ( BUILD_MOD_STORE_POSTGRESQL )