From b9d31dffc5e3c97c54a3569e1700506aa0c33543 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Wed, 12 Dec 2018 20:37:14 +0100 Subject: [PATCH] CMake: Improve finding Iconv Continue when Iconv can not be found. Silence warnings when testing if second argument for iconv() is const. Use correct include dir. --- build/cmake/init.cmake | 26 ++++++++++++++++++-------- build/cmake/lib/base/CMakeLists.txt | 4 ++-- build/cmake/modules/FindIconv.cmake | 2 ++ build/cmake/setup.cmake | 9 ++++----- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index 462bb50729..9738f69859 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -154,15 +154,25 @@ if(wxUSE_LIBLZMA) find_package(LibLZMA REQUIRED) endif() -if(UNIX AND wxUSE_SECRETSTORE) - # The required APIs are always available under MSW and OS X but we must - # have GNOME libsecret under Unix to be able to compile this class. - find_package(Libsecret REQUIRED) - if(NOT LIBSECRET_FOUND) - message(WARNING "libsecret not found, wxSecretStore won't be available") - wx_option_force_value(wxUSE_SECRETSTORE OFF) +if(UNIX) + if(wxUSE_SECRETSTORE) + # The required APIs are always available under MSW and OS X but we must + # have GNOME libsecret under Unix to be able to compile this class. + find_package(Libsecret REQUIRED) + if(NOT LIBSECRET_FOUND) + message(WARNING "libsecret not found, wxSecretStore won't be available") + wx_option_force_value(wxUSE_SECRETSTORE OFF) + endif() endif() -endif() + + if(wxUSE_LIBICONV) + find_package(Iconv) + if(NOT ICONV_FOUND) + message(WARNING "iconv not found") + wx_option_force_value(wxUSE_LIBICONV OFF) + endif() + endif() +endif(UNIX) if(wxUSE_GUI) if(WXMSW AND wxUSE_METAFILE) diff --git a/build/cmake/lib/base/CMakeLists.txt b/build/cmake/lib/base/CMakeLists.txt index 8f526afebe..08a1f74f22 100644 --- a/build/cmake/lib/base/CMakeLists.txt +++ b/build/cmake/lib/base/CMakeLists.txt @@ -48,8 +48,8 @@ if(UNIX AND wxUSE_SECRETSTORE) wx_lib_include_directories(base PRIVATE ${LIBSECRET_INCLUDE_DIRS}) wx_lib_link_libraries(base PRIVATE ${LIBSECRET_LIBRARIES}) endif() -if(wxUSE_LIBICONV AND ICONV_FOUND) - wx_lib_include_directories(base PRIVATE ${ICONV_INCLUDE_DIRS}) +if(wxUSE_LIBICONV) + wx_lib_include_directories(base PRIVATE ${ICONV_INCLUDE_DIR}) wx_lib_link_libraries(base PRIVATE ${ICONV_LIBRARIES}) endif() if(wxUSE_THREADS AND CMAKE_THREAD_LIBS_INIT) diff --git a/build/cmake/modules/FindIconv.cmake b/build/cmake/modules/FindIconv.cmake index 79e4b34f37..9d95da030b 100644 --- a/build/cmake/modules/FindIconv.cmake +++ b/build/cmake/modules/FindIconv.cmake @@ -25,6 +25,7 @@ ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) +set(CMAKE_REQUIRED_QUIET ON) IF(ICONV_FOUND) check_cxx_source_compiles(" #include @@ -41,6 +42,7 @@ IF(ICONV_FOUND) ENDIF(ICONV_FOUND) set(CMAKE_REQUIRED_INCLUDES) set(CMAKE_REQUIRED_LIBRARIES) +set(CMAKE_REQUIRED_QUIET) IF(ICONV_FOUND) IF(NOT ICONV_FIND_QUIETLY) diff --git a/build/cmake/setup.cmake b/build/cmake/setup.cmake index c3d66de91e..a102731af9 100644 --- a/build/cmake/setup.cmake +++ b/build/cmake/setup.cmake @@ -217,9 +217,8 @@ macro(wx_get_socket_param_type name code) endmacro() # the following tests are for Unix(like) systems only -if(NOT WIN32) - if(wxUSE_LIBICONV AND NOT APPLE) - find_package(Iconv REQUIRED) +if(UNIX) + if(wxUSE_LIBICONV) set(HAVE_ICONV ON) set(ICONV_CONST " ") if(ICONV_SECOND_ARGUMENT_IS_CONST) @@ -419,8 +418,8 @@ if(NOT WIN32) check_symbol_exists(getservbyname netdb.h HAVE_GETSERVBYNAME) check_symbol_exists(inet_aton arpa/inet.h HAVE_INET_ATON) check_symbol_exists(inet_addr arpa/inet.h HAVE_INET_ADDR) - endif() # wxUSE_SOCKETS -endif() # NOT WIN32 + endif(wxUSE_SOCKETS) +endif(UNIX) if(CMAKE_USE_PTHREADS_INIT) cmake_push_check_state(RESET)