diff --git a/cmake/FindWrapResolv.cmake b/cmake/FindWrapResolv.cmake index 1afd253ee80..159df9b60d8 100644 --- a/cmake/FindWrapResolv.cmake +++ b/cmake/FindWrapResolv.cmake @@ -25,13 +25,22 @@ if(LIBRESOLV) list(APPEND CMAKE_REQUIRED_LIBRARIES "${LIBRESOLV}") endif() +cmake_policy(PUSH) +if(POLICY CMP0067) + cmake_policy(SET CMP0067 NEW) +endif() +if(DEFINED CMAKE_CXX_STANDARD) + set(_WrapResolv_CMAKE_CXX_STANDARD_back ${CMAKE_CXX_STANDARD}) +endif() +set(CMAKE_CXX_STANDARD 11) + check_cxx_source_compiles(" #include #include int main(int, char **argv) { - res_state statep = 0; + res_state statep = {}; int n = res_nmkquery(statep, 0, argv[1], 0, 0, NULL, 0, NULL, NULL, 0); n = res_nsend(statep, NULL, 0, NULL, 0); n = dn_expand(NULL, NULL, NULL, NULL, 0); @@ -39,6 +48,14 @@ int main(int, char **argv) } " HAVE_LIBRESOLV_FUNCTIONS) +if(DEFINED _WrapResolv_CMAKE_CXX_STANDARD_back) + set(CMAKE_CXX_STANDARD ${_WrapResolv_CMAKE_CXX_STANDARD_back}) + unset(_WrapResolv_CMAKE_CXX_STANDARD_back) +else() + unset(CMAKE_CXX_STANDARD) +endif() + +cmake_policy(POP) cmake_pop_check_state() if(HAVE_LIBRESOLV_FUNCTIONS)