@@ -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} " )
0 commit comments