From 01d207a5076b6fc37a064645b13f2c6550f58b94 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Fri, 26 Aug 2016 17:55:28 +0200 Subject: [PATCH] CMake: Add missing iconv dependency FreeBSD has two iconv systems: It ships an iconv.h itself, and symbols for that in the libc. But there's also the port of GNU libiconv, which unfortunately for us, Doxygen depends on. This changes things to prefer a separate libiconv library over the system one; that is, the port on FreeBSD. Gbp-Dch: ignore --- CMake/FindIconv.cmake | 20 ++++++++++++++++++++ CMakeLists.txt | 1 + apt-pkg/CMakeLists.txt | 9 +++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 CMake/FindIconv.cmake diff --git a/CMake/FindIconv.cmake b/CMake/FindIconv.cmake new file mode 100644 index 000000000..67046d95d --- /dev/null +++ b/CMake/FindIconv.cmake @@ -0,0 +1,20 @@ +find_path(ICONV_INCLUDE_DIR NAMES iconv.h) + +find_library(ICONV_LIBRARY NAMES iconv) +if (ICONV_LIBRARY) + set(ICONV_SYMBOL_FOUND "${ICONV_LIBRARY}") +else() + check_function_exists(iconv_open ICONV_SYMBOL_FOUND) +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Iconv DEFAULT_MESSAGE ICONV_INCLUDE_DIR ICONV_SYMBOL_FOUND) + +if(ICONV_LIBRARY) + set(ICONV_LIBRARIES "${ICONV_LIBRARY}") +else() + set(ICONV_LIBRARIES) +endif() +set(ICONV_INCLUDE_DIRS "${ICONV_INCLUDE_DIR}") + +mark_as_advanced(ICONV_LIBRARY ICONV_INCLUDE_DIR) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24c58a0f8..35c75b18a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,7 @@ include(GNUInstallDirs) include(TestBigEndian) find_package(Threads) find_package(LFS REQUIRED) +find_package(Iconv REQUIRED) if(USE_NLS) find_package(Intl REQUIRED) diff --git a/apt-pkg/CMakeLists.txt b/apt-pkg/CMakeLists.txt index 3f85bc143..34930c8e9 100644 --- a/apt-pkg/CMakeLists.txt +++ b/apt-pkg/CMakeLists.txt @@ -28,14 +28,19 @@ target_include_directories(apt-pkg PRIVATE ${ZLIB_INCLUDE_DIRS} ${BZIP2_INCLUDE_DIR} ${LZMA_INCLUDE_DIRS} - ${LZ4_INCLUDE_DIRS}) + ${LZ4_INCLUDE_DIRS} + ${ICONV_DIRECTORIES} +) + target_link_libraries(apt-pkg PRIVATE -lutil ${CMAKE_DL_LIBS} ${RESOLV_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${LZMA_LIBRARIES} - ${LZ4_LIBRARIES}) + ${LZ4_LIBRARIES} + ${ICONV_LIBRARIES} +) set_target_properties(apt-pkg PROPERTIES VERSION ${MAJOR}.${MINOR}) set_target_properties(apt-pkg PROPERTIES SOVERSION ${MAJOR}) add_version_script(apt-pkg) -- 2.45.2