diff options
-rw-r--r-- | CMake/FindIconv.cmake | 20 | ||||
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | apt-pkg/CMakeLists.txt | 9 |
3 files changed, 28 insertions, 2 deletions
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) |