include(SelectLibraryConfigurations)

set(Z_VCPKG_ICONV_USES_DARWIN_SDK FALSE)
if(APPLE AND CMAKE_OSX_SYSROOT AND EXISTS "${CMAKE_OSX_SYSROOT}/usr/include/iconv.h")
    set(Z_VCPKG_ICONV_USES_DARWIN_SDK TRUE)
    set(Iconv_IS_BUILT_IN FALSE CACHE BOOL "iconv requires a separate library")
    if(NOT Iconv_INCLUDE_DIR)
        set(Iconv_INCLUDE_DIR "${CMAKE_OSX_SYSROOT}/usr/include" CACHE PATH "iconv include directory")
    endif()
    if(NOT Iconv_LIBRARY)
        set(Iconv_LIBRARY iconv CACHE STRING "iconv library")
    endif()
endif()

_find_package(${ARGS})
if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN AND NOT Z_VCPKG_ICONV_USES_DARWIN_SDK)
    find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include")
    find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug")
    find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
    select_library_configurations(CHARSET)
    if(NOT TARGET Iconv::Charset)
        add_library(Iconv::Charset INTERFACE IMPORTED)
        set_target_properties(Iconv::Charset PROPERTIES
          INTERFACE_LINK_LIBRARIES "\$<\$<NOT:\$<CONFIG:DEBUG>>:${CHARSET_LIBRARY_RELEASE}>;\$<\$<CONFIG:DEBUG>:${CHARSET_LIBRARY_DEBUG}>"
          INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}")
    endif()
    if(CHARSET_LIBRARIES)
        list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES})
        if(TARGET Iconv::Iconv)
            set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset)
        endif()
    endif()
endif()
