diff --git a/cmake/Modules/FindIconv.cmake b/cmake/Modules/FindIconv.cmake index 2c670bee9..46d99f058 100644 --- a/cmake/Modules/FindIconv.cmake +++ b/cmake/Modules/FindIconv.cmake @@ -43,18 +43,22 @@ else() check_function_exists(iconv HAVE_ICONV) endif() -if (HAVE_ICONV_H) - set(_ICONV_PROTO_INCLUDE "iconv.h") -endif (HAVE_ICONV_H) -if (HAVE_SYS_ICONV_H) - set(_ICONV_PROTO_INCLUDE "sys/iconv.h") -endif (HAVE_SYS_ICONV_H) +if (HAVE_ICONV_H OR HAVE_SYS_ICONV_H) + if (HAVE_ICONV_H) + set(_ICONV_PROTO_INCLUDE "iconv.h") + endif (HAVE_ICONV_H) + if (HAVE_SYS_ICONV_H) + set(_ICONV_PROTO_INCLUDE "sys/iconv.h") + endif (HAVE_SYS_ICONV_H) -check_prototype_definition(iconv - "size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)" - "-1" - ${_ICONV_PROTO_INCLUDE} - HAVE_ICONV_CONST) + set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) + check_prototype_definition(iconv + "size_t iconv(iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)" + "-1" + ${_ICONV_PROTO_INCLUDE} + HAVE_ICONV_CONST) + set(CMAKE_REQUIRED_INCLUDES) +endif (HAVE_ICONV_H OR HAVE_SYS_ICONV_H) set(ICONV_INCLUDE_DIRS ${ICONV_INCLUDE_DIR} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e640a0b21..9a552cc0c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,6 +12,7 @@ set(CSYNC_PUBLIC_INCLUDE_DIRS ) set(CSYNC_PRIVATE_INCLUDE_DIRS + ${ICONV_INCLUDE_DIRS} ${INIPARSER_INCLUDE_DIRS} ${SQLITE3_INCLUDE_DIRS} ${CSTDLIB_PUBLIC_INCLUDE_DIRS} diff --git a/src/std/CMakeLists.txt b/src/std/CMakeLists.txt index aeda51eee..e48c1c513 100644 --- a/src/std/CMakeLists.txt +++ b/src/std/CMakeLists.txt @@ -6,6 +6,7 @@ set(CSTDLIB_PUBLIC_INCLUDE_DIRS ) set(CSYNC_PRIVATE_INCLUDE_DIRS + ${ICONV_INCLUDE_DIRS} ) set(CSTDLIB_LIBRARY