<!-- 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: <kamailio/kamailio/pull/4...@github.com>
_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to