mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
796 lines
18 KiB
796 lines
18 KiB
# Kamailio build system Module groups definitions
|
|
#
|
|
|
|
# lists are sets of modules that don't include modules that are in other lists -
|
|
# break the lists as needed in order to use them to build desired groups and
|
|
# packages
|
|
#
|
|
|
|
# * basic used modules, with no extra dependency (widespread usage)
|
|
set(MOD_LIST_BASIC
|
|
async
|
|
auth
|
|
benchmark
|
|
blst
|
|
cfg_rpc
|
|
cfgutils
|
|
corex
|
|
counters
|
|
ctl
|
|
debugger
|
|
diversion
|
|
enum
|
|
exec
|
|
ipops
|
|
kex
|
|
mangler
|
|
maxfwd
|
|
mediaproxy
|
|
mqueue
|
|
nat_traversal
|
|
nathelper
|
|
path
|
|
pike
|
|
pv
|
|
ratelimit
|
|
rr
|
|
rtimer
|
|
rtpproxy
|
|
sanity
|
|
sdpops
|
|
siputils
|
|
sl
|
|
statistics
|
|
textops
|
|
textopsx
|
|
tm
|
|
tmx
|
|
topoh
|
|
xlog
|
|
rtpengine
|
|
stun
|
|
sipt
|
|
tcpops
|
|
auth_xkeys
|
|
smsops
|
|
tsilo
|
|
cfgt
|
|
statsc
|
|
topos
|
|
topos_htable
|
|
sipdump
|
|
pv_headers
|
|
kemix
|
|
)
|
|
|
|
# * extra used modules, with no extra dependency
|
|
set(MOD_LIST_EXTRA
|
|
avp
|
|
auth_diameter
|
|
call_control
|
|
call_obj
|
|
dmq
|
|
domainpolicy
|
|
msrp
|
|
carrierroute
|
|
pdb
|
|
qos
|
|
sca
|
|
seas
|
|
sms
|
|
sst
|
|
timer
|
|
tmrec
|
|
uac_redirect
|
|
xhttp
|
|
xhttp_rpc
|
|
xprint
|
|
jsonrpcs
|
|
nosip
|
|
dmq_usrloc
|
|
statsd
|
|
rtjson
|
|
log_custom
|
|
keepalive
|
|
ss7ops
|
|
acc_diameter
|
|
evrexec
|
|
file_out
|
|
sipjson
|
|
lrkproxy
|
|
math
|
|
posops
|
|
xhttp_prom
|
|
dlgs
|
|
sworker
|
|
influxdbc
|
|
peerstate
|
|
ptimer
|
|
pvtpl
|
|
siprepo
|
|
)
|
|
|
|
# * common modules depending on database
|
|
set(MOD_LIST_DB
|
|
acc
|
|
alias_db
|
|
auth_db
|
|
avpops
|
|
cfg_db
|
|
db_text
|
|
db_flatstore
|
|
db_cluster
|
|
dialog
|
|
dispatcher
|
|
domain
|
|
drouting
|
|
group
|
|
htable
|
|
imc
|
|
matrix
|
|
mohqueue
|
|
msilo
|
|
mtree
|
|
p_usrloc
|
|
pdt
|
|
permissions
|
|
pipelimit
|
|
prefix_route
|
|
registrar
|
|
sipcapture
|
|
siptrace
|
|
speeddial
|
|
sqlops
|
|
uac
|
|
uri_db
|
|
userblocklist
|
|
usrloc
|
|
secfilter
|
|
)
|
|
|
|
# * common modules depending on database, using UID db schema
|
|
set(MOD_LIST_DBUID db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags uid_uri_db)
|
|
|
|
# * modules for devel purposes
|
|
set(MOD_LIST_DEVEL misctest)
|
|
|
|
# * modules depending on pcre3 library
|
|
set(MOD_LIST_PCRE dialplan lcr regex)
|
|
|
|
# * modules depending on radius client library
|
|
set(MOD_LIST_RADIUS acc_radius auth_radius misc_radius peering)
|
|
|
|
# * modules depending on ldap client library
|
|
set(MOD_LIST_LDAP db2_ldap h350 ldap)
|
|
|
|
# * modules depending on mysql client library
|
|
set(MOD_LIST_MYSQL db_mysql)
|
|
|
|
# * modules depending on postgres client library
|
|
set(MOD_LIST_POSTGRES db_postgres)
|
|
|
|
# * modules depending on unixodbc library
|
|
set(MOD_LIST_UNIXODBC db_unixodbc)
|
|
|
|
# * modules depending on xml2 library
|
|
set(MOD_LIST_CPL cplc)
|
|
|
|
# * modules depending on xml2 library
|
|
set(MOD_LIST_XMLDEPS xhttp_pi xmlrpc xmlops)
|
|
|
|
# * modules depending on net-snmp library
|
|
set(MOD_LIST_SNMPSTATS snmpstats)
|
|
|
|
# * modules depending on expat library
|
|
set(MOD_LIST_XMPP xmpp)
|
|
|
|
# * modules depending on curl library
|
|
set(MOD_LIST_UTILS utils http_client lost slack)
|
|
|
|
# * modules depending on curl and libevent2 library
|
|
set(MOD_LIST_HTTP_ASYNC http_async_client)
|
|
|
|
# * modules depending on memcache library
|
|
set(MOD_LIST_MEMCACHED memcached)
|
|
|
|
# * modules depending on openssl library
|
|
set(MOD_LIST_TLSDEPS crypto tls)
|
|
|
|
# * modules depending on static openssl library
|
|
set(MOD_LIST_TLSA tlsa)
|
|
|
|
# * modules depending on static wolfssl library
|
|
set(MOD_LIST_TLS_WOLFSSL tls_wolfssl)
|
|
|
|
# * modules depending on openssl library
|
|
set(MOD_LIST_OUTBOUND outbound)
|
|
|
|
# * modules depending on openssl and unistring library
|
|
set(MOD_LIST_WEBSOCKET websocket)
|
|
|
|
# * modules depending on libval-threads libcrypto libsres libpthread
|
|
set(MOD_LIST_DNSSEC dnssec)
|
|
|
|
# * modules depending on libsctp
|
|
set(MOD_LIST_SCTP sctp)
|
|
|
|
# * modules depending on openssl library
|
|
set(MOD_LIST_AUTHEPH auth_ephemeral)
|
|
|
|
# * modules related to SIMPLE presence extensions
|
|
set(MOD_LIST_PRESENCE
|
|
presence
|
|
presence_conference
|
|
presence_dfks
|
|
presence_dialoginfo
|
|
presence_mwi
|
|
presence_profile
|
|
presence_reginfo
|
|
presence_xml
|
|
pua
|
|
pua_bla
|
|
pua_dialoginfo
|
|
pua_reginfo
|
|
pua_rpc
|
|
pua_usrloc
|
|
pua_xmpp
|
|
rls
|
|
xcap_client
|
|
xcap_server
|
|
)
|
|
|
|
# * modules depending on lua library
|
|
set(MOD_LIST_LUA app_lua)
|
|
|
|
# * modules depending on perl library
|
|
set(MOD_LIST_PERLDEPS app_perl)
|
|
|
|
# * modules depending on python library
|
|
set(MOD_LIST_PYTHON app_python)
|
|
|
|
# * modules depending on python3 library
|
|
set(MOD_LIST_PYTHON3 app_python3 app_python3s)
|
|
|
|
# * modules depending on libm (math library - standard system library)
|
|
set(MOD_LIST_JSDT app_jsdt)
|
|
|
|
# * modules depending on ruby library
|
|
set(MOD_LIST_RUBY app_ruby app_ruby_proc)
|
|
|
|
# * modules depending on geoip library
|
|
set(MOD_LIST_GEOIP geoip)
|
|
|
|
# * modules depending on new geoip library
|
|
set(MOD_LIST_GEOIP2 geoip2)
|
|
|
|
# * modules depending on sqlite library
|
|
set(MOD_LIST_SQLITE db_sqlite)
|
|
|
|
# * modules depending on oracle library
|
|
set(MOD_LIST_ORACLE db_oracle)
|
|
|
|
# * modules depending on json library
|
|
set(MOD_LIST_JSON json pua_json)
|
|
|
|
# * modules depending on json (+libevent) library
|
|
set(MOD_LIST_JSON_EVENT jsonrpcc)
|
|
|
|
# * modules depending on jansson library
|
|
set(MOD_LIST_JANSSON jansson acc_json)
|
|
|
|
# * modules depending on jansson (+libevent) library
|
|
set(MOD_LIST_JANSSON_EVENT janssonrpcc)
|
|
|
|
# * modules depending on redis library
|
|
set(MOD_LIST_REDIS db_redis ndb_redis topos_redis)
|
|
|
|
# * modules related to IMS extensions
|
|
set(MOD_LIST_IMS
|
|
cdp
|
|
cdp_avp
|
|
ims_dialog
|
|
ims_auth
|
|
ims_isc
|
|
ims_icscf
|
|
ims_qos
|
|
ims_qos_npn
|
|
ims_registrar_pcscf
|
|
ims_registrar_scscf
|
|
ims_usrloc_pcscf
|
|
ims_usrloc_scscf
|
|
ims_charging
|
|
ims_ocs
|
|
ims_diameter_server
|
|
ims_ipsec_pcscf
|
|
)
|
|
|
|
# * modules depending on gzip library
|
|
set(MOD_LIST_GZCOMPRESS gzcompress)
|
|
|
|
# * modules depending on uuid library
|
|
set(MOD_LIST_UUID uuid)
|
|
|
|
# * modules depending on ev library
|
|
set(MOD_LIST_EV evapi)
|
|
|
|
# * modules depending on libjwt library
|
|
set(MOD_LIST_JWT jwt)
|
|
|
|
# * modules depending on libwebsockets library
|
|
set(MOD_LIST_LWSC lwsc)
|
|
|
|
# * modules depending on libstirshaken library
|
|
set(MOD_LIST_STIRSHAKEN stirshaken)
|
|
|
|
# * modules depending on kazoo/rabbitmq
|
|
set(MOD_LIST_KAZOO kazoo)
|
|
|
|
# * modules depending on mongodb
|
|
set(MOD_LIST_MONGODB db_mongodb ndb_mongodb)
|
|
|
|
# * modules depending on redis and event library
|
|
set(MOD_LIST_CNXCC cnxcc)
|
|
|
|
# * modules depending on erlang library
|
|
set(MOD_LIST_ERLANG erlang)
|
|
|
|
# * modules depending on systemd library
|
|
set(MOD_LIST_SYSTEMD log_systemd systemdops)
|
|
|
|
# * modules depending on libnsq (+libev libevbuffsock libcurl libjson-c) library
|
|
set(MOD_LIST_NSQ nsq)
|
|
|
|
# * modules depending on librabbitmq library
|
|
set(MOD_LIST_RABBITMQ rabbitmq)
|
|
|
|
# * modules depending on libphonenumber library
|
|
set(MOD_LIST_PHONENUM phonenum)
|
|
|
|
# * modules depending on rdkafka library
|
|
set(MOD_LIST_KAFKA kafka)
|
|
|
|
# * modules depending on mqtt mosquitto and ev library
|
|
set(MOD_LIST_MQTT mqtt)
|
|
|
|
# * modules depending on nats and ev library
|
|
set(MOD_LIST_NATS nats)
|
|
|
|
# * modules depending on ruxc library
|
|
set(MOD_LIST_RUXC ruxc)
|
|
|
|
# * modules depending on microhttpd library
|
|
set(MOD_LIST_MICROHTTPD microhttpd)
|
|
|
|
# * modules depending on nghttp2 library
|
|
set(MOD_LIST_NGHTTP2 nghttp2)
|
|
|
|
# * modules depending on libgcrypt library
|
|
set(MOD_LIST_GCRYPT gcrypt)
|
|
|
|
# * modules depending on secsipid library
|
|
set(MOD_LIST_SECSIPID secsipid secsipid_proc)
|
|
|
|
# * modules depending on oRTP and mediastreamer2 libraries
|
|
set(MOD_LIST_RTP_MEDIA_SERVER rtp_media_server)
|
|
|
|
# modules depending on curl and secp256k1 library
|
|
set(MOD_LIST_AUTH_BLOCKCHAIN auth_web3 auth_arnacon)
|
|
|
|
# * all modules
|
|
set(MOD_LIST_ALL
|
|
${MOD_LIST_BASIC}
|
|
${MOD_LIST_EXTRA}
|
|
${MOD_LIST_DB}
|
|
${MOD_LIST_DBUID}
|
|
${MOD_LIST_DEVEL}
|
|
${MOD_LIST_PCRE}
|
|
${MOD_LIST_RADIUS}
|
|
${MOD_LIST_LDAP}
|
|
${MOD_LIST_MYSQL}
|
|
${MOD_LIST_POSTGRES}
|
|
${MOD_LIST_UNIXODBC}
|
|
${MOD_LIST_XMLDEPS}
|
|
${MOD_LIST_PERLDEPS}
|
|
${MOD_LIST_CPL}
|
|
${MOD_LIST_XMPP}
|
|
${MOD_LIST_UTILS}
|
|
${MOD_LIST_MEMCACHED}
|
|
${MOD_LIST_TLSDEPS}
|
|
${MOD_LIST_WEBSOCKET}
|
|
${MOD_LIST_SNMPSTATS}
|
|
${MOD_LIST_PRESENCE}
|
|
${MOD_LIST_LUA}
|
|
${MOD_LIST_PYTHON}
|
|
${MOD_LIST_PYTHON3}
|
|
${MOD_LIST_RUBY}
|
|
${MOD_LIST_GEOIP}
|
|
${MOD_LIST_SQLITE}
|
|
${MOD_LIST_JSON}
|
|
${MOD_LIST_JSON_EVENT}
|
|
${MOD_LIST_REDIS}
|
|
${MOD_LIST_IMS}
|
|
${MOD_LIST_ORACLE}
|
|
${MOD_LIST_OUTBOUND}
|
|
${MOD_LIST_DNSSEC}
|
|
${MOD_LIST_SCTP}
|
|
${MOD_LIST_AUTHEPH}
|
|
${MOD_LIST_GZCOMPRESS}
|
|
${MOD_LIST_UUID}
|
|
${MOD_LIST_EV}
|
|
${MOD_LIST_KAZOO}
|
|
${MOD_LIST_MONGODB}
|
|
${MOD_LIST_CNXCC}
|
|
${MOD_LIST_JANSSON}
|
|
${MOD_LIST_JANSSON_EVENT}
|
|
${MOD_LIST_GEOIP2}
|
|
${MOD_LIST_ERLANG}
|
|
${MOD_LIST_SYSTEMD}
|
|
${MOD_LIST_HTTP_ASYNC}
|
|
${MOD_LIST_NSQ}
|
|
${MOD_LIST_RABBITMQ}
|
|
${MOD_LIST_JSDT}
|
|
${MOD_LIST_PHONENUM}
|
|
${MOD_LIST_KAFKA}
|
|
${MOD_LIST_MQTT}
|
|
${MOD_LIST_NATS}
|
|
${MOD_LIST_RUXC}
|
|
${MOD_LIST_SECSIPID}
|
|
${MOD_LIST_JWT}
|
|
${MOD_LIST_LWSC}
|
|
${MOD_LIST_STIRSHAKEN}
|
|
${MOD_LIST_TLSA}
|
|
${MOD_LIST_TLS_WOLFSSL}
|
|
${MOD_LIST_MICROHTTPD}
|
|
${MOD_LIST_NGHTTP2}
|
|
${MOD_LIST_GCRYPT}
|
|
${MOD_LIST_RTP_MEDIA_SERVER}
|
|
${MOD_LIST_AUTH_BLOCKCHAIN}
|
|
)
|
|
|
|
# sort the list
|
|
list(SORT MOD_LIST_ALL)
|
|
|
|
# --- Groups defined for source code compilation ###
|
|
|
|
# groups are sets of modules selected by compile target interest (should be
|
|
# built by combining lists)
|
|
|
|
# Modules in this group are the default compiled modules due to no external
|
|
# compile or link dependencies
|
|
set(MODULE_GROUP_ALL ${MOD_LIST_ALL})
|
|
|
|
set(MODULE_GROUP_DEFAULT ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
|
|
${MOD_LIST_DEVEL} ${MOD_LIST_JSDT}
|
|
)
|
|
|
|
# Modules in this group are the default compiled modules due to no
|
|
# internal/external compile or link dependencies
|
|
# module_group_standard=$(mod_list_basic) $(mod_list_extra) \ $(mod_list_devel)
|
|
# $(mod_list_jsdt)
|
|
set(MODULE_GROUP_STANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DEVEL} ${MOD_LIST_JSDT})
|
|
|
|
# Modules in this group are considered a standard part due to widespread usage,
|
|
# but they have dependencies that must be satisfied for compilation (e.g., lcr,
|
|
# radius, presence, tls, ...). module_group_common=$(mod_list_db)
|
|
# $(mod_list_dbuid) \ $(mod_list_pcre) $(mod_list_radius) \ $(mod_list_xmldeps)
|
|
# $(mod_list_presence) \ $(mod_list_tlsdeps)
|
|
set(MODULE_GROUP_COMMON
|
|
${MOD_LIST_DB}
|
|
${MOD_LIST_DBUID}
|
|
${MOD_LIST_PCRE}
|
|
${MOD_LIST_RADIUS}
|
|
${MOD_LIST_XMLDEPS}
|
|
${MOD_LIST_PRESENCE}
|
|
${MOD_LIST_TLSDEPS}
|
|
)
|
|
|
|
# for all protocols (excl. local ones such as unix, tcp, etc.)
|
|
set(AVAILABLE_GROUPS ALL DEFAULT STANDARD COMMON)
|
|
|
|
# --- Groups defined for pacKaging ###
|
|
# Standard modules in main pkg
|
|
set(MODULE_GROUP_KSTANDARD ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
|
|
${MOD_LIST_PCRE} ${MOD_LIST_JSDT}
|
|
)
|
|
|
|
# Standard modules without any dependencies (such as pcre)
|
|
set(MODULE_GROUP_KMINI ${MOD_LIST_BASIC} ${MOD_LIST_EXTRA} ${MOD_LIST_DB} ${MOD_LIST_DBUID}
|
|
${MOD_LIST_JSDT}
|
|
)
|
|
# pkg pcre module
|
|
set(MODULE_GROUP_KPCRE ${MOD_LIST_PCRE})
|
|
|
|
# pkg mysql module
|
|
set(MODULE_GROUP_KMYSQL ${MOD_LIST_MYSQL})
|
|
|
|
# pkg postgress module
|
|
set(MODULE_GROUP_KPOSTGRES ${MOD_LIST_POSTGRES})
|
|
|
|
# pkg cpl module
|
|
set(MODULE_GROUP_KCPL ${MOD_LIST_CPL})
|
|
|
|
# pkg xml modules
|
|
set(MODULE_GROUP_KXML ${MOD_LIST_XMLDEPS})
|
|
|
|
# pkg radius modules
|
|
set(MODULE_GROUP_KRADIUS ${MOD_LIST_RADIUS})
|
|
|
|
# pkg unixodbc module
|
|
set(MODULE_GROUP_KUNIXODBC ${MOD_LIST_UNIXODBC})
|
|
|
|
# pkg perl module
|
|
set(MODULE_GROUP_KPERL ${MOD_LIST_PERLDEPS})
|
|
|
|
# pkg snmpstats module
|
|
set(MODULE_GROUP_KSNMPSTATS ${MOD_LIST_SNMPSTATS})
|
|
|
|
# pkg xmpp module
|
|
set(MODULE_GROUP_KXMPP ${MOD_LIST_XMPP})
|
|
|
|
# pkg ldap modules
|
|
set(MODULE_GROUP_KLDAP ${MOD_LIST_LDAP})
|
|
|
|
# pkg utils module
|
|
set(MODULE_GROUP_KUTILS ${MOD_LIST_UTILS})
|
|
|
|
# pkg https_async module
|
|
set(MODULE_GROUP_KHTTP_ASYNC ${MOD_LIST_HTTP_ASYNC})
|
|
|
|
# pkg memcached module
|
|
set(MODULE_GROUP_KMEMCACHED ${MOD_LIST_MEMCACHED})
|
|
|
|
# pkg tls module
|
|
set(MODULE_GROUP_KTLS_BASIC ${MOD_LIST_TLSDEPS})
|
|
|
|
# pkg tls module with curl
|
|
if(DEFINED ENV{KTLS_INCLUDE_TLSA})
|
|
set(MODULE_GROUP_KTLS ${MOD_LIST_TLSDEPS} ${MOD_LIST_TLSA})
|
|
else()
|
|
set(MODULE_GROUP_KTLS ${MOD_LIST_TLSDEPS})
|
|
set(MODULE_GROUP_KTLSA ${MOD_LIST_TLSA})
|
|
endif()
|
|
|
|
# pkg tls_wolfssl module
|
|
set(MODULE_GROUP_KTLS_WOLFSSL ${MOD_LIST_TLS_WOLFSSL})
|
|
|
|
# pkg websocket module
|
|
set(MODULE_GROUP_KWEBSOCKET ${MOD_LIST_WEBSOCKET})
|
|
|
|
# pkg presence modules
|
|
set(MODULE_GROUP_KPRESENCE ${MOD_LIST_PRESENCE})
|
|
|
|
# pkg lua module
|
|
set(MODULE_GROUP_KLUA ${MOD_LIST_LUA})
|
|
|
|
# pkg python module
|
|
set(MODULE_GROUP_KPYTHON ${MOD_LIST_PYTHON})
|
|
|
|
# pkg python3 module
|
|
set(MODULE_GROUP_KPYTHON3 ${MOD_LIST_PYTHON3})
|
|
|
|
# pkg ruby module
|
|
set(MODULE_GROUP_KRUBY ${MOD_LIST_RUBY})
|
|
|
|
# pkg geoip module
|
|
set(MODULE_GROUP_KGEOIP ${MOD_LIST_GEOIP})
|
|
|
|
# pkg geoip2 module
|
|
set(MODULE_GROUP_KGEOIP2 ${MOD_LIST_GEOIP2})
|
|
|
|
# pkg sqlite module
|
|
set(MODULE_GROUP_KSQLITE ${MOD_LIST_SQLITE})
|
|
|
|
# K json modules
|
|
set(MODULE_GROUP_KJSON_BASIC ${MOD_LIST_JSON})
|
|
|
|
# K json modules with libevent
|
|
set(MODULE_GROUP_KJSON ${MOD_LIST_JSON} ${MOD_LIST_JSON_EVENT})
|
|
|
|
# K jansson modules
|
|
set(MODULE_GROUP_KJANSSON_BASIC ${MOD_LIST_JANSSON})
|
|
|
|
# K jansson modules with libevent
|
|
set(MODULE_GROUP_KJANSSON ${MOD_LIST_JANSSON} ${MOD_LIST_JANSSON_EVENT})
|
|
|
|
# pkg redis module
|
|
set(MODULE_GROUP_KREDIS ${MOD_LIST_REDIS})
|
|
|
|
# pkg IMS modules
|
|
set(MODULE_GROUP_KIMS ${MOD_LIST_IMS})
|
|
|
|
# pkg outbound module
|
|
set(MODULE_GROUP_KOUTBOUND ${MOD_LIST_OUTBOUND})
|
|
|
|
# pkg dnssec module
|
|
set(MODULE_GROUP_KDNSSEC ${MOD_LIST_DNSSEC})
|
|
|
|
# pkg sctp module
|
|
set(MODULE_GROUP_KSCTP ${MOD_LIST_SCTP})
|
|
|
|
# pkg auth_ephemeral module
|
|
set(MODULE_GROUP_KAUTHEPH ${MOD_LIST_AUTHEPH})
|
|
|
|
# pkg gzcompress module
|
|
set(MODULE_GROUP_KGZCOMPRESS ${MOD_LIST_GZCOMPRESS})
|
|
|
|
# pkg uuid module
|
|
set(MODULE_GROUP_KUUID ${MOD_LIST_UUID})
|
|
|
|
# pkg libev modules
|
|
set(MODULE_GROUP_KEV ${MOD_LIST_EV})
|
|
|
|
# pkg jwt module
|
|
set(MODULE_GROUP_KJWT ${MOD_LIST_JWT})
|
|
|
|
# pkg lwsc module
|
|
set(MODULE_GROUP_KLWSC ${MOD_LIST_LWSC})
|
|
|
|
# pkg stirshaken module
|
|
set(MODULE_GROUP_KSTIRSHAKEN ${MOD_LIST_STIRSHAKEN})
|
|
|
|
# pkg kazoo module
|
|
set(MODULE_GROUP_KKAZOO ${MOD_LIST_KAZOO})
|
|
|
|
# pkg mongodb modules
|
|
set(MODULE_GROUP_KMONGODB ${MOD_LIST_MONGODB})
|
|
|
|
# pkg cnxcc module
|
|
set(MODULE_GROUP_KCNXCC ${MOD_LIST_CNXCC})
|
|
|
|
# pkg erlang module
|
|
set(MODULE_GROUP_KERLANG ${MOD_LIST_ERLANG})
|
|
|
|
# pkg systemd module
|
|
set(MODULE_GROUP_KSYSTEMD ${MOD_LIST_SYSTEMD})
|
|
|
|
# K nsq modules
|
|
set(MODULE_GROUP_KNSQ ${MOD_LIST_NSQ})
|
|
|
|
# K rabbitmq modules
|
|
set(MODULE_GROUP_KRABBITMQ ${MOD_LIST_RABBITMQ})
|
|
|
|
# K phonenumber modules
|
|
set(MODULE_GROUP_KPHONENUM ${MOD_LIST_PHONENUM})
|
|
|
|
# K kafka modules
|
|
set(MODULE_GROUP_KKAFKA ${MOD_LIST_KAFKA})
|
|
|
|
# K mqtt modules
|
|
set(MODULE_GROUP_KMQTT ${MOD_LIST_MQTT})
|
|
|
|
# K nats modules
|
|
set(MODULE_GROUP_KNATS ${MOD_LIST_NATS})
|
|
|
|
# K ruxc modules
|
|
set(MODULE_GROUP_KRUXC ${MOD_LIST_RUXC})
|
|
|
|
# K microhttpd module
|
|
set(MODULE_GROUP_KMICROHTTPD ${MOD_LIST_MICROHTTPD})
|
|
|
|
# K nghttp2 module
|
|
set(MODULE_GROUP_KNGHTTP2 ${MOD_LIST_NGHTTP2})
|
|
|
|
# K gcrypt module
|
|
set(MODULE_GROUP_KGCRYPT ${MOD_LIST_GCRYPT})
|
|
|
|
# K secsipid modules
|
|
set(MODULE_GROUP_KSECSIPID ${MOD_LIST_SECSIPID})
|
|
|
|
# K rtp_media_server modules
|
|
set(MODULE_GROUP_KRTP_MEDIA_SERVER ${MOD_LIST_RTP_MEDIA_SERVER})
|
|
|
|
# K auth_blockchain modules
|
|
set(MODULE_GROUP_KAUTH_BLOCKCHAIN ${MOD_LIST_AUTH_BLOCKCHAIN})
|
|
|
|
# list of static modules
|
|
set(STATIC_MODULES "")
|
|
|
|
set(MODULE_GROUP_PACKAGE_GROUPS
|
|
KSTANDARD
|
|
KPCRE
|
|
KMYSQL
|
|
KPOSTGRES
|
|
KCPL
|
|
KXML
|
|
KRADIUS
|
|
KUNIXODBC
|
|
KPERL
|
|
KSNMPSTATS
|
|
KXMPP
|
|
KLDAP
|
|
KUTILS
|
|
KHTTP_ASYNC
|
|
KMEMCACHED
|
|
KTLS_BASIC
|
|
KTLS
|
|
KTLSA
|
|
KTLS_WOLFSSL
|
|
KWEBSOCKET
|
|
KPRESENCE
|
|
KLUA
|
|
KPYTHON
|
|
KPYTHON3
|
|
KRUBY
|
|
KGEOIP
|
|
KGEOIP2
|
|
KSQLITE
|
|
KJSON_BASIC
|
|
KJSON
|
|
KJANSSON_BASIC
|
|
KJANSSON
|
|
KREDIS
|
|
KIMS
|
|
KOUTBOUND
|
|
KJAVA
|
|
KDNSSEC
|
|
KSCTP
|
|
KAUTHEPH
|
|
KGZCOMPRESS
|
|
KUUID
|
|
KEV
|
|
KJWT
|
|
KLWSC
|
|
KSTIRSHAKEN
|
|
KKAZOO
|
|
KMONGODB
|
|
KCNXCC
|
|
KERLANG
|
|
KSYSTEMD
|
|
KNSQ
|
|
KRABBITMQ
|
|
KPHONENUM
|
|
KKAFKA
|
|
KMQTT
|
|
KNATS
|
|
KRUXC
|
|
KMICROHTTPD
|
|
KNGHTTP2
|
|
KGCRYPT
|
|
KSECSIPID
|
|
KRTP_MEDIA_SERVER
|
|
KAUTH_BLOCKCHAIN
|
|
)
|
|
|
|
# Add group names to available group and provide "ALL_PACKAGED" as well
|
|
# for easier packaging using components
|
|
list(APPEND AVAILABLE_GROUPS ALL_PACKAGED KMINI ${MODULE_GROUP_PACKAGE_GROUPS})
|
|
|
|
# Find the group name for the target by checking if the module is in the
|
|
# list of modules to be built and if so, use the group name of that module
|
|
# group_name can be used afterwards.
|
|
function(find_group_name module)
|
|
set(group_name
|
|
""
|
|
PARENT_SCOPE
|
|
)
|
|
separate_arguments(groups_to_search_in UNIX_COMMAND ${MODULE_GROUP_NAME})
|
|
list(FIND groups_to_search_in "ALL_PACKAGED" group_index)
|
|
if(group_index GREATER -1)
|
|
# Remove it from the list and append the package groups
|
|
list(REMOVE_AT groups_to_search_in ${group_index})
|
|
list(APPEND groups_to_search_in ${MODULE_GROUP_PACKAGE_GROUPS})
|
|
endif()
|
|
# message(WARNING "Groups provided by the user ${groups_to_search_in}")
|
|
# message(WARNING "Looking for group for db ${module}")
|
|
foreach(group IN LISTS groups_to_search_in)
|
|
get_property(MODULES_IN_GROUP VARIABLE PROPERTY "MODULE_GROUP_${group}")
|
|
# message(WARNING "Modules in group ${group}: ${MODULES_IN_GROUP}")
|
|
if("${module}" IN_LIST MODULES_IN_GROUP)
|
|
# message(WARNING "Found group ${group} for db ${module}")
|
|
set(group_name
|
|
"${group}"
|
|
PARENT_SCOPE
|
|
)
|
|
return()
|
|
endif()
|
|
endforeach()
|
|
message(STATUS "module ${module} not found in any group")
|
|
# if not found in any group, it's probably in include_modules list
|
|
# Use the group name "user_specified_list" associated with include_modules
|
|
# list, otherwise it will generate Unknown group component
|
|
set(group_name
|
|
"user_specified_list"
|
|
PARENT_SCOPE
|
|
)
|
|
endfunction()
|