@@ -12,7 +12,7 @@ INCLUDE (CheckCSourceCompiles) |
12 | 12 | INCLUDE (CheckStructHasMember) |
13 | 13 | INCLUDE (CheckLibraryExists) |
14 | 14 |
|
15 | | -PROJECT (c-ares LANGUAGES C VERSION "1.32.3" ) |
| 15 | +PROJECT (c-ares LANGUAGES C VERSION "1.33.0" ) |
16 | 16 |
|
17 | 17 | # Set this version before release |
18 | 18 | SET (CARES_VERSION "${PROJECT_VERSION}") |
@@ -30,7 +30,7 @@ INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are w |
30 | 30 | # For example, a version of 4:0:2 would generate output such as: |
31 | 31 | # libname.so -> libname.so.2 |
32 | 32 | # libname.so.2 -> libname.so.2.2.0 |
33 | | -SET (CARES_LIB_VERSIONINFO "19:3:17") |
| 33 | +SET (CARES_LIB_VERSIONINFO "20:0:18") |
34 | 34 |
|
35 | 35 |
|
36 | 36 | OPTION (CARES_STATIC "Build as a static library" OFF) |
@@ -42,6 +42,7 @@ OPTION (CARES_BUILD_CONTAINER_TESTS "Build and run container tests (implies CARE |
42 | 42 | OPTION (CARES_BUILD_TOOLS "Build tools" ON) |
43 | 43 | OPTION (CARES_SYMBOL_HIDING "Hide private symbols in shared libraries" OFF) |
44 | 44 | OPTION (CARES_THREADS "Build with thread-safety support" ON) |
| 45 | +OPTION (CARES_COVERAGE "Build for code coverage" OFF) |
45 | 46 | SET (CARES_RANDOM_FILE "/dev/urandom" CACHE STRING "Suitable File / Device Path for entropy, such as /dev/urandom") |
46 | 47 |
|
47 | 48 |
|
@@ -265,7 +266,7 @@ IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin") |
265 | 266 | ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "Linux") |
266 | 267 | LIST (APPEND SYSFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700) |
267 | 268 | ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "SunOS") |
268 | | - LIST (APPEND SYSFLAGS -D__EXTENSIONS__ -D_REENTRANT -D_XOPEN_SOURCE=700) |
| 269 | + LIST (APPEND SYSFLAGS -D__EXTENSIONS__ -D_REENTRANT -D_XOPEN_SOURCE=600) |
269 | 270 | ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "AIX") |
270 | 271 | LIST (APPEND SYSFLAGS -D_ALL_SOURCE -D_XOPEN_SOURCE=700 -D_USE_IRS) |
271 | 272 | ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") |
@@ -409,6 +410,7 @@ CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_scope_id "${CMAKE_EXTRA_INCLU |
409 | 410 | CHECK_SYMBOL_EXISTS (closesocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET) |
410 | 411 | CHECK_SYMBOL_EXISTS (CloseSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET_CAMEL) |
411 | 412 | CHECK_SYMBOL_EXISTS (connect "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONNECT) |
| 413 | +CHECK_SYMBOL_EXISTS (connectx "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONNECTX) |
412 | 414 | CHECK_SYMBOL_EXISTS (fcntl "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FCNTL) |
413 | 415 | CHECK_SYMBOL_EXISTS (freeaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FREEADDRINFO) |
414 | 416 | CHECK_SYMBOL_EXISTS (getaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETADDRINFO) |
@@ -423,6 +425,10 @@ CHECK_SYMBOL_EXISTS (if_indextoname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_INDE |
423 | 425 | CHECK_SYMBOL_EXISTS (if_nametoindex "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_NAMETOINDEX) |
424 | 426 | CHECK_SYMBOL_EXISTS (ConvertInterfaceIndexToLuid "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACEINDEXTOLUID) |
425 | 427 | CHECK_SYMBOL_EXISTS (ConvertInterfaceLuidToNameA "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONVERTINTERFACELUIDTONAMEA) |
| 428 | +CHECK_SYMBOL_EXISTS (NotifyIpInterfaceChange "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_NOTIFYIPINTERFACECHANGE) |
| 429 | +CHECK_SYMBOL_EXISTS (RegisterWaitForSingleObject "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_REGISTERWAITFORSINGLEOBJECT) |
| 430 | + |
| 431 | + |
426 | 432 | CHECK_SYMBOL_EXISTS (inet_net_pton "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_INET_NET_PTON) |
427 | 433 | IF (NOT WIN32) |
428 | 434 | # Disabled on Windows, because these functions are only really supported on Windows |
@@ -682,6 +688,27 @@ IF (HAVE_ARPA_NAMESER_COMPAT_H) |
682 | 688 | SET (CARES_HAVE_ARPA_NAMESER_COMPAT_H 1) |
683 | 689 | ENDIF() |
684 | 690 |
|
| 691 | + |
| 692 | +# Coverage |
| 693 | +IF (CARES_COVERAGE) |
| 694 | + # set compiler flags |
| 695 | + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs") |
| 696 | + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs") |
| 697 | + |
| 698 | + # find required tools |
| 699 | + FIND_PROGRAM(LCOV lcov REQUIRED) |
| 700 | + FIND_PROGRAM(GENHTML genhtml REQUIRED) |
| 701 | + |
| 702 | + # add coverage target |
| 703 | + ADD_CUSTOM_TARGET(coverage |
| 704 | + # gather data |
| 705 | + COMMAND ${LCOV} --directory . --capture --output-file coverage.info |
| 706 | + # generate report |
| 707 | + COMMAND ${GENHTML} --demangle-cpp -o coverage coverage.info |
| 708 | + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |
| 709 | + ) |
| 710 | +ENDIF() |
| 711 | + |
685 | 712 | # TRANSFORM_MAKEFILE_INC |
686 | 713 | # |
687 | 714 | # This function consumes the "Makefile.inc" autotools file, and converts it into |
@@ -729,6 +756,8 @@ IF (CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS) |
729 | 756 | ENDIF () |
730 | 757 |
|
731 | 758 |
|
| 759 | + |
| 760 | + |
732 | 761 | # Export targets |
733 | 762 | IF (CARES_INSTALL) |
734 | 763 | SET (CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") |
|