

add_definitions("-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII")


set(mailtransport_lib_srcs
  transport.cpp
  transportmanager.cpp
  transporttype.cpp

  transportcombobox.cpp
  transportconfigwidget.cpp

  filteractionjob.cpp
  transportjob.cpp
  resourcesendjob.cpp
  smtpjob.cpp
  precommandjob.cpp

  legacydecrypt.cpp
  socket.cpp
  servertest.cpp

  dispatcherinterface.cpp
  messagequeuejob.cpp
  outboxactions.cpp

  attributeregistrar.cpp
  dispatchmodeattribute.cpp
  errorattribute.cpp
  sentactionattribute.cpp
  sentbehaviourattribute.cpp
  transportattribute.cpp
  transportconfigdialog.cpp
  smtpconfigwidget.cpp

  transportlistview.cpp
  transportmanagementwidget.cpp
  addtransportdialog.cpp
)

ecm_qt_declare_logging_category(mailtransport_lib_srcs HEADER mailtransport_debug.h IDENTIFIER MAILTRANSPORT_LOG CATEGORY_NAME log_mailtransport)

ki18n_wrap_ui(mailtransport_lib_srcs
  ui/addtransportdialog.ui
  ui/transportmanagementwidget.ui
  ui/smtpsettings.ui
)

kconfig_add_kcfg_files(mailtransport_lib_srcs transportbase.kcfgc)

add_library(KF5MailTransport ${mailtransport_lib_srcs})

generate_export_header(KF5MailTransport BASE_NAME mailtransport)

add_library(KF5::MailTransport ALIAS KF5MailTransport)


target_include_directories(KF5MailTransport INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransport;${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransport/mailtransport>")
target_include_directories(KF5MailTransport PUBLIC "$<BUILD_INTERFACE:${MailTransport_SOURCE_DIR}/src;${MailTransport_BINARY_DIR}/src>")


target_link_libraries(KF5MailTransport
PUBLIC
                      KF5::Wallet
                      KF5::AkonadiCore
                      KF5::Mime
                      KF5::AkonadiMime
PRIVATE
                      KF5::I18n 
                      KF5::KIOCore
                      KF5::ConfigGui
                      KF5::WidgetsAddons
                      KF5::CoreAddons
                      KF5::Wallet
                      KF5::ConfigWidgets
                      Qt5::DBus
                      Qt5::Network
)

set_target_properties(KF5MailTransport PROPERTIES
    VERSION ${MAILTRANSPORT_VERSION_STRING}
    SOVERSION ${MAILTRANSPORT_SOVERSION}
    EXPORT_NAME MailTransport
)


if(MAILTRANSPORT_INPROCESS_SMTP)
  target_link_libraries(mailtransport ${Sasl2_LIBRARIES} KF5::PimUtils)
endif()


install(TARGETS KF5MailTransport EXPORT KF5MailTransportTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})

install(FILES mailtransport.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})

add_subdirectory(kcm)


ecm_generate_headers(MailTransport_CamelCase_HEADERS
  HEADER_NAMES
  DispatcherInterface
  DispatchModeAttribute
  ErrorAttribute
  MessageQueueJob
  PrecommandJob
  SentBehaviourAttribute
  ServerTest
  Transport
  TransportAttribute
  #TransportBase
  TransportComboBox
  TransportJob
  TransportManagementWidget
  TransportManager
  TransportType
  PREFIX MailTransport
  REQUIRED_HEADERS MailTransport_HEADERS
)

install(FILES
  ${MailTransport_CamelCase_HEADERS}
  DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransport/MailTransport/ COMPONENT Devel ) 

install(FILES
  ${CMAKE_CURRENT_BINARY_DIR}/mailtransport_export.h
  ${MailTransport_HEADERS}
  ${CMAKE_CURRENT_BINARY_DIR}/transportbase.h
  sentactionattribute.h

  DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransport/mailtransport COMPONENT Devel
)

ecm_generate_pri_file(BASE_NAME KMailTransport LIB_NAME KF5MailTransport DEPS "Wallet AkonadiCore Mime AkonadiMime" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransport/)
install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})

