<!-- 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!