Commit Graph

72 Commits

Author SHA1 Message Date
Jim Hague 7a1e72d51e Increase minimum libunbound version to 1.5.9 to get pluggable event handling.
At Willem's suggestion.
2019-11-01 12:10:52 +00:00
Jim Hague 0e432cc7c2 Add option to build Doxygen.
This requires a change to the Doxyfile. I can't see a way to avoid this.
2019-10-31 13:41:04 +00:00
Jim Hague ba54c50779 Add options to build the example programs. 2019-10-31 12:59:28 +00:00
Jim Hague 07a074c1b1 Add binary build dir as include interface for the getdns libraries.
Any library user will need that to find the getdns header files.
2019-10-30 18:12:23 +00:00
Jim Hague a46ded25b6 Implement enabling and checking for TCP Fast Open. 2019-10-30 17:21:25 +00:00
Jim Hague ffa5d6144f Add manual enable/disable of the poll event loop.
And fix the detection of poll().
2019-10-30 14:40:11 +00:00
Jim Hague cbed43ed59 Add ENABLE_EDNS_COOKIES. 2019-10-30 14:09:13 +00:00
Jim Hague c75d8df399 Remove obsolete comment. 2019-10-30 14:02:49 +00:00
Jim Hague 74d9404759 FIrst pass at GnuTLS support. 2019-10-30 14:02:32 +00:00
Jim Hague b0ef0887db Add libunbound dependencies where necessary.
I think it's only needed for getdns_query and getdns_server_mon because it gets included in config.h, of all places.
2019-10-29 16:53:19 +00:00
Jim Hague bb59275ba9 More Windows system libraries. These are used by libuv. 2019-10-29 15:46:04 +00:00
Jim Hague 4af076f5fb Ensure include directories for external libraries are on the path. 2019-10-29 15:38:54 +00:00
Jim Hague 6a043d2fac Add libuv extension. 2019-10-29 09:15:04 +00:00
Jim Hague c359a0b65e Add libev extension. 2019-10-29 09:13:57 +00:00
Jim Hague 02561c2d7e Add building the libevent extension.
Insist on libevent2.
2019-10-28 18:11:42 +00:00
Jim Hague 4ab7f8f757 Shared libraries - move versioning and export list into functions.
Also for Windows add looking for a template .RC of the target name and adding that to the build too.
2019-10-28 17:11:00 +00:00
Jim Hague 7cf119fb6b Only include libidn/idn2 includes on building getdns objects if they are set. 2019-10-28 11:05:54 +00:00
Jim Hague 69ab8adb12 Allow user to disable use of libidn/idn2.
It's tempting to do the same for libunbound, but that's only pulled in if you're not building stub-only, and in that case there is no choice - you have to have libunbound.
2019-10-28 10:36:34 +00:00
Jim Hague 5df3bc4fce Libidn/idn2 needs to be included in the library link, certainly for shared libs.
So might as well do the same for static libs.
2019-10-28 10:35:36 +00:00
Jim Hague 545916d347 Make building getdns_query and getdns_server_mon optional. Default is on. 2019-10-28 10:06:02 +00:00
Jim Hague 1da968a35f Detect and use libidn and libidn2 if present. 2019-10-28 09:57:29 +00:00
Jim Hague 164b089011 Add option to enable MDNS support. 2019-10-25 17:18:29 +01:00
Jim Hague d9e5f405e7 Add option to build Stubby from subproject, and remove Stubby-only items from getdns config.
This requires the latest version of the Stubby CMake build to work.
2019-10-25 16:16:04 +01:00
Jim Hague 2fa1a184e4 Remove blanket include directory addition and make specific to individual targets.
This is best practice. We don't want that directory potentially contaminating other included builds.
2019-10-25 15:58:48 +01:00
Jim Hague f1885cc4a6 Remove surplus entry on CMAKE_MODULE_PATH and verbosity put in there temporarily and accidentally committed. 2019-10-25 15:54:57 +01:00
Jim Hague dbad46c516 Correct ordering of project and includes. 2019-10-24 17:49:23 +01:00
Jim Hague 9dcd8482f5 Add stub only mode, on by default.
If disabled, it needs to drag in libunbound. So do all that.
2019-10-24 17:40:37 +01:00
Jim Hague 530c8c5e8e Use BSD library we found directly, and mark its path as advanced, as per other libraries. 2019-10-24 17:32:05 +01:00
Jim Hague e8eafdfa44 Rearrange includes, to CTest and thus BUILD_TESTING is always present.
We can then use BUILD_TESTING to control whether to build the test executables or not.
2019-10-24 17:29:30 +01:00
Jim Hague e4c2ddb401 Present more user friendly name for the native stub DNSSEC option. 2019-10-24 14:29:20 +01:00
Jim Hague 55a0456b67 Add cipher configuration options. 2019-10-24 14:21:25 +01:00
Jim Hague def0f1d714 Ensure some option values get defined in the config header. 2019-10-24 14:07:43 +01:00
Jim Hague e4333b13df Add debug message options. 2019-10-24 13:43:20 +01:00
Jim Hague 7fd7bda000 Add current date option. 2019-10-24 12:19:51 +01:00
Jim Hague 74bbfc02fa Ensure library locations are all marked as advanced options. 2019-10-24 12:04:27 +01:00
Jim Hague 3b44cd8f38 Minor formatting nit. 2019-10-24 11:57:34 +01:00
Jim Hague b5f260376e Expose file paths as options. 2019-10-24 11:57:16 +01:00
Jim Hague 07e617579d Add fd setsize configuration. 2019-10-24 11:15:41 +01:00
Jim Hague 5f3d5191b0 Make visible existing options that are visible in autoconf.
Also punctuate option text consistently.
2019-10-24 11:14:20 +01:00
Jim Hague 60eb113770 Add options ENABLE_STATIC and ENABLE_SHARED.
Stick a cautious toe in the water of CMake options, and add enabling/disabling shared/static library builds, because that's easy.
2019-10-24 10:51:28 +01:00
Jim Hague d447999c60 Add check for check library, and if found add the main test module.
Note that tests_dict/list/stub_async/namespaces are built, but not run. I don't know why.
2019-10-23 18:33:50 +01:00
Jim Hague 24e2d1acbf Includes are specified by the library interfaces. 2019-10-23 18:30:26 +01:00
Jim Hague 9acdc1cbb5 Resolv.conf location mustn't have prefix. It's so the library can find the system resolver.
If you add a prefix, getdns doesn't get any upstreams configured and test failures abound.
2019-10-23 18:28:54 +01:00
Jim Hague 2414d31951 Properly sort out exporting the include directory for in-tree builds but not for out of tree builds. 2019-10-22 15:42:06 +01:00
Jim Hague 165078a50d Improve manpage processing robustness.
Fix regex to expressly check for starting ., and switch to regex match for SH lines to stop any potential problems with training spaces or multiple spaces before section name.
2019-10-22 14:47:49 +01:00
Jim Hague ea1111d899 Add installation of work done so far.
The install is equivalent to the autoconf install with no options.

Note that where the autoconf adds copies of manual pages renamed to individual APIs via a script manpgaltnames (in doc), this functionality is now done in pure CMake, to ensure it works on Windows.

Also note there is no 'make uninstall'. See https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake.
2019-10-22 14:32:44 +01:00
Jim Hague c6e5ef6330 Set SONAME matching autoconf build on shared library for GNU ld. 2019-10-21 17:25:48 +01:00
Jim Hague 2c06e8b8ac Remove unused items. 2019-10-21 16:54:55 +01:00
Jim Hague a884426c6e Suggest C11 for the tools as well as the library. 2019-10-21 16:54:40 +01:00
Jim Hague 9682b4d41c Do platform versioning from single version source.
Now I understand what dark stuff libtool gets up to, just do the same at the platform level.
2019-10-21 13:51:19 +01:00