Sara Dickinson
b455c3feca
If we want to use only libidn2 then we need to move to bionic for the travis build (the libidn2 package for xenial is too old!). So update the travis build for this.
...
Fix the default mode for STUB_ONLY build for Windows vs linux
2019-11-18 16:59:29 +00:00
Sara Dickinson
38f59b7bea
Remove libidn support
...
More updates to README
2019-11-18 14:05:50 +00:00
Sara Dickinson
323e6a6ba6
Update submodules and fix issue with loading local hosts
2019-11-15 14:29:33 +00:00
Sara Dickinson
80b0c7a45e
Add missing compile flags so JSON parsing of listen_addresses works!!!!
2019-11-14 17:43:26 +00:00
Sara Dickinson
8b3e3412f5
Merge branch 'feature/cmake' of https://github.com/getdnsapi/getdns into feature/cmake_testfix
2019-11-14 12:38:15 +00:00
Sara Dickinson
ffbc49cc2d
Get all of the tests run by ‘run-all.sh’ working apart from those that require valgrind…….
...
update stubby commit and ymlx commit to remove build warnings
2019-11-14 11:36:18 +00:00
Jim Hague
277a4ae9c7
Add test for new libuv callback styles.
...
This fixes a build warning on Mac.
2019-11-13 18:07:31 +00:00
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
Jim Hague
41741f6cc4
Rather than listing in a variable, list sources, libs etc directly on targets.
2019-10-21 13:32:05 +01:00
Jim Hague
73e9c32655
First pass at adding shared libraries to the current static library build.
...
* I can't find out where the .so version number currently produced by the autoconf build comes from, so for the moment supply it explicitly.
* Include a version in the Windows DLL. But Windows can only grok major[.minor]. So also supply one of those.
* On Windows, we need a .lib for the .dll, and a static .lib. These, obviously, need different names. So add _static onto the name of the static lib.
* Only build the objects once, so explicitly build both with PIC.
* Only export the explicit list of symbols from the shared library. This has to be done a different way on GNU ld, Mac linker and Windows.
* Although I have left the tools being linked statically, I have tested with dynamic linking. getdns_query uses gettimeofday(), which isn't on Windows. With a static link, it just happens to find it in the getdns library, as the symbols aren't filtered. But this doesn't work for shared use, when they are. So explicitly add the compat implementation into the getdns_query sources.
2019-10-18 18:54:09 +01:00
Jim Hague
4304bb7017
Be a little more modern CMake.
2019-10-18 11:28:39 +01:00
Jim Hague
4df33630ea
Let CMake know about the target language.
2019-10-18 11:27:19 +01:00
Jim Hague
878fd0583f
Jump off the fence on policy CMP0075.
...
The new behaviour is benign for us, so go with it if available.
2019-10-17 17:22:51 +01:00
Jim Hague
11e621b758
Regularise use or not of space between else/endif and (). Always have a space.
2019-10-17 17:21:58 +01:00
Jim Hague
4da88601d9
Add getdns_server_mon to the build.
2019-10-16 10:42:05 +01:00
Jim Hague
ec62d87fca
Correct target dependencies exported by the getdns library and used by getdns_query.
2019-10-16 10:35:18 +01:00
Jim Hague
55d6b47ed1
Correct target dependencies.
...
And improve a variable name.
2019-10-16 10:29:29 +01:00
Jim Hague
8362a183e8
Remove use of pkg-config to see if libbsd is present.
...
Instead check for the library directly.In the process, fix the detection of the declarations and functions in libbsd so they work.
2019-10-15 18:35:06 +01:00
Jim Hague
e45f569603
Add getdns_query to CMake build.
2019-10-15 16:56:12 +01:00
Jim Hague
dd70108558
Windows does not have mkstemp(). Add compat version.
...
The compat version is Windows-specific.
2019-10-15 16:54:13 +01:00
Jim Hague
323d76d7ae
Add the rest of the compat functions to the build, if required.
...
Remove any preprocess guards from the sources, and only include them in the build if required. Add some additional required Windows libraries.
2019-10-15 16:53:03 +01:00
Jim Hague
b8df26194e
Add symbols for target endianness.
2019-10-14 09:47:03 +01:00
Jim Hague
d1dca186bc
Add Posix/XOpen support flags for Unix builds that aren't FreeBSD.
2019-10-14 09:45:38 +01:00
Jim Hague
7a0a2f712d
Add support for building on Windows.
...
This should support both native Visual Studio builds and MinGW builds.
2019-10-14 09:44:28 +01:00
Jim Hague
ffe626f5f3
Enable warnings when building.
2019-10-10 12:31:12 +01:00
Jim Hague
dc6cadebbc
Add OpenSSL function checks as per autoconf.
...
Well, those function checks that are actually used in the code, anyway.
2019-10-10 12:30:50 +01:00
Jim Hague
c367b39c13
Update build to get the current source building.
...
Hardwire OpenSSL and do the minimum necessary to get libgetdns building.
2019-10-09 17:19:18 +01:00
Jim Hague
3152a4112e
Protect more #includes.
...
Somewhat illogical, really. A lot are standard headers.
2018-01-12 16:34:23 +00:00
Jim Hague
a906710269
Add missing function sufficient to compile Stubby on Xenial and Mac.
...
This includes the select and poll default event loops, some missing getdns source files and pleasingly now results in a warning-free build.
2018-01-08 18:59:54 +00:00
Jim Hague
1ecc7b3c26
Initial version of CMake build.
...
This is just a basic build of the library. No options are support, and the only builds tested are Xenial and MacOS (the latter using the Brew openssl package, and so requiring -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2l option on the cmake command line).
Using the library is untested.
2018-01-08 15:36:35 +00:00