build: pull iconv detection into its own FindIconv.cmake file

This will provide better control for those who may want to alter which
one gets used.
This commit is contained in:
John Szakmeister 2014-11-08 16:18:04 -05:00
parent 203a5166a0
commit 9344a40e74
4 changed files with 27 additions and 7 deletions

View File

@ -131,6 +131,11 @@ if(LibIntl_FOUND)
include_directories(SYSTEM ${LibIntl_INCLUDE_DIRS})
endif()
find_package(Iconv)
if(Iconv_FOUND)
include_directories(SYSTEM ${Iconv_INCLUDE_DIRS})
endif()
# Determine platform's threading library. Set CMAKE_THREAD_PREFER_PTHREAD
# explicitly to indicate a strong preference for pthread.
set(CMAKE_THREAD_PREFER_PTHREAD ON)

18
cmake/FindIconv.cmake Normal file
View File

@ -0,0 +1,18 @@
# - Try to find iconv
# Once done, this will define
#
# Iconv_FOUND - system has iconv
# Iconv_INCLUDE_DIRS - the iconv include directories
# Iconv_LIBRARIES - link these to use iconv
include(LibFindMacros)
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
find_library(ICONV_LIBRARY NAMES iconv)
set(Iconv_PROCESS_INCLUDES ICONV_INCLUDE_DIR)
if(ICONV_LIBRARY)
set(Iconv_PROCESS_LIBS ICONV_LIBRARY)
endif()
libfind_process(Iconv)

View File

@ -44,12 +44,9 @@ check_function_exists(getpwent HAVE_GETPWENT)
check_function_exists(getpwnam HAVE_GETPWNAM)
check_function_exists(getpwuid HAVE_GETPWUID)
check_include_files(iconv.h HAVE_ICONV_H)
check_library_exists(iconv iconv "" HAVE_ICONV_LIB)
if(HAVE_ICONV_LIB)
set(CMAKE_REQUIRED_LIBRARIES iconv)
if(Iconv_FOUND)
set(HAVE_ICONV 1)
endif()
check_function_exists(iconv HAVE_ICONV)
check_function_exists(lstat HAVE_LSTAT)
if(NOT HAVE_LSTAT)

View File

@ -158,8 +158,8 @@ else()
endif()
endif()
if(HAVE_ICONV_LIB)
list(APPEND NVIM_LINK_LIBRARIES iconv)
if(Iconv_LIBRARIES)
list(APPEND NVIM_LINK_LIBRARIES ${Iconv_LIBRARIES})
endif()
# Put these last on the link line, since multiple things may depend on them.