ecm_setup_version(PROJECT
    VARIABLE_PREFIX IMPORTWIZARD
    VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/importwizard_version.h"
    PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPim6ImportWizardConfigVersion.cmake"
    SOVERSION 6
)

set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPim6ImportWizard")

add_library(KPim6ImportWizard)
add_library(KPim6::ImportWizard ALIAS KPim6ImportWizard)

configure_package_config_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/KPimImportWizardConfig.cmake.in"
    "${CMAKE_CURRENT_BINARY_DIR}/KPim6ImportWizardConfig.cmake"
    INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
)

install(
    FILES
        "${CMAKE_CURRENT_BINARY_DIR}/KPim6ImportWizardConfig.cmake"
        "${CMAKE_CURRENT_BINARY_DIR}/KPim6ImportWizardConfigVersion.cmake"
    DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
    COMPONENT Devel
)

install(
    EXPORT KPim6ImportWizardTargets
    DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
    FILE KPim6ImportWizardTargets.cmake
    NAMESPACE KPim6::
)

install(
    FILES
        "${CMAKE_CURRENT_BINARY_DIR}/importwizard_version.h"
    DESTINATION "${KDE_INSTALL_INCLUDEDIR}/KPim6/ImportWizard/"
    COMPONENT Devel
)

target_sources(
    KPim6ImportWizard
    PRIVATE
        abstractimporter.cpp
        abstractsettings.cpp
        abstractaddressbook.cpp
        abstractcalendar.cpp
        abstractbase.cpp
        abstractdisplayinfo.cpp
        importwizardutil.cpp
        importwizardsavepasswordjob.cpp
        abstractsettings.h
        abstractbase.h
        importwizardutil.h
        abstractaddressbook.h
        importwizardsavepasswordjob.h
        abstractimporter.h
        abstractdisplayinfo.h
        abstractcalendar.h
)

ecm_qt_declare_logging_category(KPim6ImportWizard HEADER libimportwizard_debug.h IDENTIFIER LIBIMPORTWIZARD_LOG CATEGORY_NAME org.kde.pim.importwizard.lib
        DESCRIPTION "importwizard (libimportwizard)"
        EXPORT IMPORTWIZARD
)

if(COMPILE_WITH_UNITY_CMAKE_SUPPORT)
    set_target_properties(
        KPim6ImportWizard
        PROPERTIES
            UNITY_BUILD
                ON
    )
endif()

target_include_directories(
    KPim6ImportWizard
    INTERFACE
        "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/KPim6/ImportWizard;${KDE_INSTALL_INCLUDEDIR}/KPim6/>"
)

generate_export_header(KPim6ImportWizard BASE_NAME libimportwizard)

target_link_libraries(
    KPim6ImportWizard
    PUBLIC
        KPim6::MailTransport
    PRIVATE
        KF6::Archive
        KPim6::PimCommon
        KPim6::MailCommon
        KPim6::MailImporter
        KPim6::MailImporterAkonadi
        KF6::I18n
)
target_link_libraries(KPim6ImportWizard PRIVATE qt6keychain)
set_target_properties(
    KPim6ImportWizard
    PROPERTIES
        VERSION
            ${IMPORTWIZARD_VERSION}
        SOVERSION
            ${IMPORTWIZARD_SOVERSION}
        EXPORT_NAME
            ImportWizard
)

install(TARGETS KPim6ImportWizard EXPORT KPim6ImportWizardTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

install(
    TARGETS
        KPim6ImportWizard
        ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}
)

ecm_generate_headers(ImportWizard_CamelCase_HEADERS
    HEADER_NAMES
    AbstractBase
    AbstractDisplayInfo
    AbstractImporter
    AbstractSettings
    AbstractAddressBook
    AbstractCalendar
    ImportWizardUtil
    PREFIX ImportWizard
    REQUIRED_HEADERS ImportWizard_HEADERS
)

install(
    FILES
        ${ImportWizard_CamelCase_HEADERS}
    DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/ImportWizard/ImportWizard/
    COMPONENT Devel
)

install(
    FILES
        ${CMAKE_CURRENT_BINARY_DIR}/libimportwizard_export.h
        ${ImportWizard_HEADERS}
    DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPim6/ImportWizard/importwizard/
    COMPONENT Devel
)
