<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x
...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes
that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines
from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on
sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that
apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PR adds initial support for building kamailio with CMake.
See [
docs](https://github.com/kamailio/kamailio-wiki/pull/63) for more information on how
to build and use CMake.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4043
-- Commit Summary --
* core/resovle: Fix compile if DNS_USE_CACHE not defined
* core/forward: Define ret even if USE_TCP is not defined
* Add build folder to ignore
* Add CMake support
* Core compiles and runs successfully on Linux
* Add some notes regarding definitions
* Add missing definitions
* CMake: Clean up and minor fixes
* CMake: Add install targets for binary,cfg,kamctl and kamdbctl
* CMake: Install utils (kamctl,kamdbctl and required) with sed changes
* CMake: Move notes out of pkg
* CMake: Add uninstall target
* CMake: FIx core building and installing
* CMake: Add lib support
* CMake: Add initial module support
* CMake: Fix formating
* Update gitignore/Add cmake-format file
* Add aarch64 options
* Make cross-compile available
* Format CMakeLists with cmake-format
* Add build docs support
* cmake: add github action
* cmake: Remove windows from matrix
* cmake: Add aarch64 cross-compile
* cmake: rename arm to aarch64 arch
* cmake: Add clang support
* cmake: Remove duplicate definition
* cmake: Upgrade warning to errors to match clang
* cmake: Add target host definition
* cmake: Allow only by trigger
* cmake: Add cmake to most (all) modules
* cmake: declare dproto
* cmake: Add MOD_NAMEID definitions to modules
* cmake: modify build_rpath
* Change rpath
* cmake: Move kamailio to root folder
* cmake: Modify run path of modules
* cmake: var/run path change
* cmake: make it abs path
* cmake: Add option to select groups
* cmake: Add all modules group
* cmake: Default group set to default modules
* cmake: groups update, fixup me
* cmake: Add Find MariaDB and MySQL cmake
* cmake: Add absolute path for /var/run (fixup with other commit)
* cmake: Only search for mariadb
* cmake: Update mysql cmake
* cmake: Remove app_mono
* cmake: modify FindMariaDBCLient.cmake
* cmake: Add description to use_mcast option
* cmake: Fix format
* cmake: Add config files to uninstall target
* cmake: Add FindRadius to discover radius client
* cmake: Modify dependencies so parser c files are generated when needed
* cmake: Policy to link against targets defined in other CMakelists.
* cmake: Define MOD_NAME for all modules
* cmake: Remove RPath from module's Cmake and use PRIVATE on all
* cmake: Add support to exclude modules
* cmake: Modules with external deps ready
* cmake: Add srdb2 CMakeLists.txt
* cmake: Add various Find[Module] for cmake
* cmake: Add FindXXX to dedicated folder
* cmake: Add CPack for packaging (experimental)
* camke: Clean up some commented sections
* cmake/modules: Add NETSNMP
* cmake/libs: Modify targets with lib_ and add more libs
* cmake/modules: Update ALL modules CMakeLists.txt
-- File Changes --
A .github/workflows/cmake_build.yml (84)
M .gitignore (2)
A CMakeLists.txt (61)
A CMakelists.notes (54)
A cmake/aarch64-toolchain.cmake (28)
A cmake/cmake-format.py (240)
A cmake/cmake_uninstall.cmake.in (32)
A cmake/modules/FindBerkeleyDB.cmake (182)
A cmake/modules/FindErlang.cmake (151)
A cmake/modules/FindLdap.cmake (119)
A cmake/modules/FindLibev.cmake (60)
A cmake/modules/FindMariaDBClient.cmake (68)
A cmake/modules/FindMySQL.cmake (964)
A cmake/modules/FindNETSNMP.cmake (76)
A cmake/modules/FindOracle.cmake (115)
A cmake/modules/FindRadius.cmake (51)
A cmake/modules_docs.cmake (74)
A src/CMakeLists.txt (164)
A src/compiler-specific.cmake (55)
A src/core/CMakeLists.txt (57)
A src/core/autover.h.in (6)
M src/core/forward.h (6)
M src/core/resolve.c (8)
A src/defs.cmake (318)
A src/lib/CMakeLists.txt (30)
A src/lib/ims/CMakeLists.txt (22)
A src/lib/print/CMakeLists.txt (18)
A src/lib/srdb1/CMakeLists.txt (17)
A src/lib/srdb2/CMakeLists.txt (15)
A src/lib/trie/CMakeLists.txt (16)
A src/modules/CMakeLists.txt (143)
A src/modules/acc/CMakeLists.txt (10)
A src/modules/acc_diameter/CMakeLists.txt (8)
A src/modules/acc_json/CMakeLists.txt (12)
A src/modules/acc_radius/CMakeLists.txt (11)
A src/modules/alias_db/CMakeLists.txt (10)
A src/modules/app_java/CMakeLists.txt (14)
A src/modules/app_jsdt/CMakeLists.txt (8)
A src/modules/app_lua/CMakeLists.txt (22)
A src/modules/app_perl/CMakeLists.txt (14)
A src/modules/app_python/CMakeLists.txt (11)
A src/modules/app_python3/CMakeLists.txt (10)
A src/modules/app_python3s/CMakeLists.txt (10)
A src/modules/app_ruby/CMakeLists.txt (10)
A src/modules/app_ruby_proc/CMakeLists.txt (12)
A src/modules/async/CMakeLists.txt (8)
A src/modules/auth/CMakeLists.txt (9)
A src/modules/auth_db/CMakeLists.txt (10)
A src/modules/auth_diameter/CMakeLists.txt (8)
A src/modules/auth_ephemeral/CMakeLists.txt (8)
A src/modules/auth_radius/CMakeLists.txt (11)
A src/modules/auth_xkeys/CMakeLists.txt (8)
A src/modules/avp/CMakeLists.txt (8)
A src/modules/avpops/CMakeLists.txt (10)
A src/modules/benchmark/CMakeLists.txt (8)
A src/modules/blst/CMakeLists.txt (8)
A src/modules/call_control/CMakeLists.txt (8)
A src/modules/call_obj/CMakeLists.txt (8)
A src/modules/carrierroute/CMakeLists.txt (11)
A src/modules/cdp/CMakeLists.txt (10)
A src/modules/cdp_avp/CMakeLists.txt (8)
A src/modules/cfg_db/CMakeLists.txt (10)
A src/modules/cfg_rpc/CMakeLists.txt (10)
A src/modules/cfgt/CMakeLists.txt (8)
A src/modules/cfgutils/CMakeLists.txt (8)
A src/modules/cnxcc/CMakeLists.txt (18)
A src/modules/corex/CMakeLists.txt (8)
A src/modules/counters/CMakeLists.txt (10)
A src/modules/cplc/CMakeLists.txt (12)
A src/modules/crypto/CMakeLists.txt (10)
A src/modules/ctl/CMakeLists.txt (12)
A src/modules/db2_ldap/CMakeLists.txt (22)
A src/modules/db2_ops/CMakeLists.txt (10)
A src/modules/db_berkeley/CMakeLists.txt (12)
A src/modules/db_cluster/CMakeLists.txt (10)
A src/modules/db_flatstore/CMakeLists.txt (10)
A src/modules/db_mongodb/CMakeLists.txt (17)
A src/modules/db_mysql/CMakeLists.txt (19)
A src/modules/db_oracle/CMakeLists.txt (16)
A src/modules/db_perlvdb/CMakeLists.txt (13)
A src/modules/db_postgres/CMakeLists.txt (14)
A src/modules/db_redis/CMakeLists.txt (21)
A src/modules/db_sqlite/CMakeLists.txt (12)
A src/modules/db_text/CMakeLists.txt (10)
A src/modules/db_unixodbc/CMakeLists.txt (13)
A src/modules/debugger/CMakeLists.txt (8)
A src/modules/dialog/CMakeLists.txt (10)
A src/modules/dialplan/CMakeLists.txt (10)
A src/modules/dispatcher/CMakeLists.txt (10)
A src/modules/diversion/CMakeLists.txt (8)
A src/modules/dlgs/CMakeLists.txt (8)
A src/modules/dmq/CMakeLists.txt (10)
A src/modules/dmq_usrloc/CMakeLists.txt (8)
A src/modules/dnssec/CMakeLists.txt (19)
A src/modules/domain/CMakeLists.txt (10)
A src/modules/domainpolicy/CMakeLists.txt (10)
A src/modules/drouting/CMakeLists.txt (10)
A src/modules/enum/CMakeLists.txt (8)
A src/modules/erlang/CMakeLists.txt (11)
A src/modules/evapi/CMakeLists.txt (10)
A src/modules/evrexec/CMakeLists.txt (8)
A src/modules/exec/CMakeLists.txt (8)
A src/modules/file_out/CMakeLists.txt (8)
A src/modules/gcrypt/CMakeLists.txt (12)
A src/modules/geoip/CMakeLists.txt (12)
A src/modules/geoip2/CMakeLists.txt (13)
A src/modules/group/CMakeLists.txt (10)
A src/modules/groups.cmake (686)
A src/modules/gzcompress/CMakeLists.txt (12)
A src/modules/h350/CMakeLists.txt (8)
A src/modules/htable/CMakeLists.txt (10)
A src/modules/http_async_client/CMakeLists.txt (16)
A src/modules/http_client/CMakeLists.txt (10)
A src/modules/imc/CMakeLists.txt (10)
A src/modules/ims_auth/CMakeLists.txt (10)
A src/modules/ims_charging/CMakeLists.txt (10)
A src/modules/ims_dialog/CMakeLists.txt (10)
A src/modules/ims_diameter_server/CMakeLists.txt (10)
A src/modules/ims_icscf/CMakeLists.txt (12)
A src/modules/ims_ipsec_pcscf/CMakeLists.txt (14)
A src/modules/ims_isc/CMakeLists.txt (11)
A src/modules/ims_ocs/CMakeLists.txt (10)
A src/modules/ims_qos/CMakeLists.txt (10)
A src/modules/ims_qos_npn/CMakeLists.txt (10)
A src/modules/ims_registrar_pcscf/CMakeLists.txt (10)
A src/modules/ims_registrar_scscf/CMakeLists.txt (10)
A src/modules/ims_usrloc_pcscf/CMakeLists.txt (10)
A src/modules/ims_usrloc_scscf/CMakeLists.txt (10)
A src/modules/influxdbc/CMakeLists.txt (8)
A src/modules/ipops/CMakeLists.txt (8)
A src/modules/jansson/CMakeLists.txt (12)
A src/modules/janssonrpcc/CMakeLists.txt (16)
A src/modules/json/CMakeLists.txt (16)
A src/modules/jsonrpcc/CMakeLists.txt (16)
A src/modules/jsonrpcs/CMakeLists.txt (8)
A src/modules/jwt/CMakeLists.txt (16)
A src/modules/kafka/CMakeLists.txt (16)
A src/modules/kazoo/CMakeLists.txt (33)
A src/modules/keepalive/CMakeLists.txt (10)
A src/modules/kemix/CMakeLists.txt (8)
A src/modules/kex/CMakeLists.txt (8)
A src/modules/lcr/CMakeLists.txt (19)
A src/modules/ldap/CMakeLists.txt (10)
A src/modules/log_custom/CMakeLists.txt (8)
A src/modules/log_systemd/CMakeLists.txt (12)
A src/modules/lost/CMakeLists.txt (11)
A src/modules/lrkproxy/CMakeLists.txt (8)
A src/modules/lwsc/CMakeLists.txt (12)
A src/modules/mangler/CMakeLists.txt (8)
A src/modules/math/CMakeLists.txt (8)
A src/modules/matrix/CMakeLists.txt (10)
A src/modules/maxfwd/CMakeLists.txt (8)
A src/modules/mediaproxy/CMakeLists.txt (8)
A src/modules/memcached/CMakeLists.txt (12)
A src/modules/microhttpd/CMakeLists.txt (13)
A src/modules/misc_radius/CMakeLists.txt (12)
A src/modules/misctest/CMakeLists.txt (8)
A src/modules/mohqueue/CMakeLists.txt (10)
A src/modules/mqtt/CMakeLists.txt (14)
A src/modules/mqueue/CMakeLists.txt (10)
A src/modules/msilo/CMakeLists.txt (10)
A src/modules/msrp/CMakeLists.txt (8)
A src/modules/mtree/CMakeLists.txt (10)
A src/modules/nat_traversal/CMakeLists.txt (8)
A src/modules/nathelper/CMakeLists.txt (8)
A src/modules/nats/CMakeLists.txt (12)
A src/modules/ndb_cassandra/CMakeLists.txt (12)
A src/modules/ndb_mongodb/CMakeLists.txt (12)
A src/modules/ndb_redis/CMakeLists.txt (12)
A src/modules/nghttp2/CMakeLists.txt (20)
A src/modules/nosip/CMakeLists.txt (8)
A src/modules/nsq/CMakeLists.txt (29)
A src/modules/outbound/CMakeLists.txt (10)
A src/modules/p_usrloc/CMakeLists.txt (10)
A src/modules/path/CMakeLists.txt (8)
A src/modules/pdb/CMakeLists.txt (8)
A src/modules/pdt/CMakeLists.txt (10)
A src/modules/peering/CMakeLists.txt (11)
A src/modules/permissions/CMakeLists.txt (10)
A src/modules/phonenum/CMakeLists.txt (49)
A src/modules/pike/CMakeLists.txt (8)
A src/modules/pipelimit/CMakeLists.txt (10)
A src/modules/posops/CMakeLists.txt (8)
A src/modules/prefix_route/CMakeLists.txt (10)
A src/modules/presence/CMakeLists.txt (14)
A src/modules/presence_conference/CMakeLists.txt (10)
A src/modules/presence_dialoginfo/CMakeLists.txt (10)
A src/modules/presence_mwi/CMakeLists.txt (8)
A src/modules/presence_profile/CMakeLists.txt (8)
A src/modules/presence_reginfo/CMakeLists.txt (10)
A src/modules/presence_xml/CMakeLists.txt (13)
A src/modules/print/CMakeLists.txt (8)
A src/modules/print_lib/CMakeLists.txt (11)
A src/modules/pua/CMakeLists.txt (12)
A src/modules/pua_bla/CMakeLists.txt (10)
A src/modules/pua_dialoginfo/CMakeLists.txt (10)
A src/modules/pua_json/CMakeLists.txt (16)
A src/modules/pua_reginfo/CMakeLists.txt (10)
A src/modules/pua_rpc/CMakeLists.txt (9)
A src/modules/pua_usrloc/CMakeLists.txt (10)
A src/modules/pua_xmpp/CMakeLists.txt (10)
A src/modules/pv/CMakeLists.txt (9)
A src/modules/pv_headers/CMakeLists.txt (8)
A src/modules/pvtpl/CMakeLists.txt (8)
A src/modules/qos/CMakeLists.txt (8)
A src/modules/rabbitmq/CMakeLists.txt (26)
A src/modules/ratelimit/CMakeLists.txt (8)
A src/modules/regex/CMakeLists.txt (17)
A src/modules/registrar/CMakeLists.txt (9)
A src/modules/rls/CMakeLists.txt (15)
A src/modules/rr/CMakeLists.txt (8)
A src/modules/rtimer/CMakeLists.txt (8)
A src/modules/rtjson/CMakeLists.txt (8)
A src/modules/rtp_media_server/CMakeLists.txt (24)
A src/modules/rtpengine/CMakeLists.txt (10)
A src/modules/rtpproxy/CMakeLists.txt (10)
A src/modules/ruxc/CMakeLists.txt (18)
A src/modules/sanity/CMakeLists.txt (8)
A src/modules/sca/CMakeLists.txt (10)
A src/modules/sctp/CMakeLists.txt (11)
A src/modules/sdpops/CMakeLists.txt (8)
A src/modules/seas/CMakeLists.txt (8)
A src/modules/secfilter/CMakeLists.txt (10)
A src/modules/secsipid/CMakeLists.txt (8)
A src/modules/secsipid_proc/CMakeLists.txt (21)
A src/modules/sipcapture/CMakeLists.txt (10)
A src/modules/sipdump/CMakeLists.txt (8)
A src/modules/sipjson/CMakeLists.txt (8)
A src/modules/siprepo/CMakeLists.txt (8)
A src/modules/sipt/CMakeLists.txt (8)
A src/modules/siptrace/CMakeLists.txt (10)
A src/modules/siputils/CMakeLists.txt (10)
A src/modules/sl/CMakeLists.txt (8)
A src/modules/slack/CMakeLists.txt (10)
A src/modules/sms/CMakeLists.txt (8)
A src/modules/smsops/CMakeLists.txt (8)
A src/modules/snmpstats/CMakeLists.txt (23)
A src/modules/speeddial/CMakeLists.txt (10)
A src/modules/sqlops/CMakeLists.txt (10)
A src/modules/ss7ops/CMakeLists.txt (8)
A src/modules/sst/CMakeLists.txt (8)
A src/modules/statistics/CMakeLists.txt (8)
A src/modules/statsc/CMakeLists.txt (8)
A src/modules/statsd/CMakeLists.txt (8)
A src/modules/stirshaken/CMakeLists.txt (12)
A src/modules/stun/CMakeLists.txt (8)
A src/modules/sworker/CMakeLists.txt (8)
A src/modules/systemdops/CMakeLists.txt (12)
A src/modules/tcpops/CMakeLists.txt (8)
A src/modules/textops/CMakeLists.txt (8)
A src/modules/textopsx/CMakeLists.txt (8)
A src/modules/timer/CMakeLists.txt (8)
A src/modules/tls/CMakeLists.txt (46)
A src/modules/tls_wolfssl/CMakeLists.txt (15)
A src/modules/tlsa/CMakeLists.txt (35)
A src/modules/tm/CMakeLists.txt (12)
A src/modules/tmrec/CMakeLists.txt (8)
A src/modules/tmx/CMakeLists.txt (9)
A src/modules/topoh/CMakeLists.txt (8)
A src/modules/topos/CMakeLists.txt (10)
A src/modules/topos_redis/CMakeLists.txt (12)
A src/modules/tsilo/CMakeLists.txt (12)
A src/modules/uac/CMakeLists.txt (10)
A src/modules/uac_redirect/CMakeLists.txt (8)
A src/modules/uid_auth_db/CMakeLists.txt (9)
A src/modules/uid_avp_db/CMakeLists.txt (9)
A src/modules/uid_domain/CMakeLists.txt (10)
A src/modules/uid_gflags/CMakeLists.txt (10)
A src/modules/uid_uri_db/CMakeLists.txt (10)
A src/modules/uri_db/CMakeLists.txt (10)
A src/modules/userblocklist/CMakeLists.txt (10)
A src/modules/usrloc/CMakeLists.txt (10)
A src/modules/utils/CMakeLists.txt (12)
A src/modules/uuid/CMakeLists.txt (12)
A src/modules/websocket/CMakeLists.txt (17)
A src/modules/xcap_client/CMakeLists.txt (12)
A src/modules/xcap_server/CMakeLists.txt (12)
A src/modules/xhttp/CMakeLists.txt (8)
A src/modules/xhttp_pi/CMakeLists.txt (12)
A src/modules/xhttp_prom/CMakeLists.txt (8)
A src/modules/xhttp_rpc/CMakeLists.txt (8)
A src/modules/xlog/CMakeLists.txt (8)
A src/modules/xmlops/CMakeLists.txt (10)
A src/modules/xmlrpc/CMakeLists.txt (12)
A src/modules/xmpp/CMakeLists.txt (13)
A src/modules/xprint/CMakeLists.txt (8)
A src/os-specific.cmake (97)
A utils/kamctl/CMakeLists.txt (196)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4043.patch
https://github.com/kamailio/kamailio/pull/4043.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4043
You are receiving this because you are subscribed to this thread.
Message ID: &lt;kamailio/kamailio/pull/4043(a)github.com&gt;