diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-08-24 10:58:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-24 10:58:54 +0100 |
commit | 8856337b35ad417db9fa5604f76086528cb0436b (patch) | |
tree | a6ce0cbfea5b04399e6f8f17aa23cf891b27ad96 | |
parent | 9a193102d011633801855483a0c10af65a9cbf6d (diff) | |
parent | 2e2d8c6493ec4d151c55d7421c93126267ee8e6d (diff) | |
download | libgit2-8856337b35ad417db9fa5604f76086528cb0436b.tar.gz |
Merge pull request #4777 from pks-t/pks/cmake-iconv-via-libc
cmake: detect and use libc-provided iconv
-rw-r--r-- | cmake/Modules/FindIconv.cmake | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cmake/Modules/FindIconv.cmake b/cmake/Modules/FindIconv.cmake index 95414bda6..3c66cdad4 100644 --- a/cmake/Modules/FindIconv.cmake +++ b/cmake/Modules/FindIconv.cmake @@ -12,14 +12,19 @@ IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) ENDIF() FIND_PATH(ICONV_INCLUDE_DIR iconv.h) +CHECK_FUNCTION_EXISTS(iconv_open libc_has_iconv) FIND_LIBRARY(iconv_lib NAMES iconv libiconv libiconv-2 c) -IF(ICONV_INCLUDE_DIR AND iconv_lib) - SET(ICONV_FOUND TRUE) -ENDIF() - -IF(ICONV_FOUND) - # split iconv into -L and -l linker options, so we can set them for pkg-config +IF(ICONV_INCLUDE_DIR AND libc_has_iconv) + SET(ICONV_FOUND TRUE) + SET(ICONV_LIBRARIES "") + IF(NOT ICONV_FIND_QUIETLY) + MESSAGE(STATUS "Found Iconv: provided by libc") + ENDIF(NOT ICONV_FIND_QUIETLY) +ELSEIF(ICONV_INCLUDE_DIR AND iconv_lib) + SET(ICONV_FOUND TRUE) + # split iconv into -L and -l linker options, so we can + # set them for pkg-config GET_FILENAME_COMPONENT(iconv_path ${iconv_lib} PATH) GET_FILENAME_COMPONENT(iconv_name ${iconv_lib} NAME_WE) STRING(REGEX REPLACE "^lib" "" iconv_name ${iconv_name}) |