diff --git a/CMakeLists.txt b/CMakeLists.txt index f5b240f..c95fbd1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,68 +1,68 @@ cmake_minimum_required(VERSION 3.5) set(PIM_VERSION "5.11.40") project(MailTransport VERSION ${PIM_VERSION}) # ECM setup set(KF5_MIN_VERSION "5.56.0") find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(GenerateExportHeader) include(ECMGenerateHeaders) include(ECMGeneratePriFile) include(ECMSetupVersion) include(FeatureSummary) include(KDEInstallDirs) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(ECMQtDeclareLoggingCategory) add_definitions(-DTRANSLATION_DOMAIN=\"libmailtransport5\") set(KMAILTRANSPORT_LIB_VERSION ${PIM_VERSION}) set(KMIME_LIB_VERSION "5.11.40") set(AKONADI_LIB_VERSION "5.11.40") set(AKONADIMIME_LIB_VERSION "5.11.40") set(KSMTP_LIB_VERSION "5.11.40") set(KGAPI_LIB_VERSION "5.11.40") set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5MailTransport") ########### Find packages ########### find_package(KF5KCMUtils ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5ConfigWidgets ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Mime ${KMIME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Akonadi ${AKONADI_LIB_VERSION} CONFIG REQUIRED) find_package(KF5AkonadiMime ${AKONADIMIME_LIB_VERSION} CONFIG REQUIRED) find_package(KPimSMTP ${KSMTP_LIB_VERSION} CONFIG REQUIRED) find_package(KPimGAPI ${KGAPI_LIB_VERSION} CONFIG REQUIRED) - +option(KDEPIM_RUN_AKONADI_TEST "Enable autotest based on Akonadi." TRUE) # workaround for https://bugreports.qt.io/browse/QTBUG-74665 (bug in qt5.13 reevaluate it) if (${Qt5Widgets_VERSION} STRGREATER "5.13") MESSAGE(STATUS "Qt version: ${Qt5Widgets_VERSION} DISABLE compile without deprecated methods. bug QTBUG-74665") else() add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) endif() if (${KF5Config_VERSION} STRGREATER "5.56.0") add_definitions(-DQT_NO_FOREACH) MESSAGE(STATUS "compile without foreach") endif() if(BUILD_TESTING) add_definitions(-DBUILD_TESTING) endif(BUILD_TESTING) ########### Targets ########### add_subdirectory(src) install( FILES kmailtransport.renamecategories kmailtransport.categories DESTINATION ${KDE_INSTALL_CONFDIR} ) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/kmailtransportakonadi/CMakeLists.txt b/src/kmailtransportakonadi/CMakeLists.txt index 4ae0bd8..838dd93 100644 --- a/src/kmailtransportakonadi/CMakeLists.txt +++ b/src/kmailtransportakonadi/CMakeLists.txt @@ -1,114 +1,116 @@ ecm_setup_version(PROJECT VARIABLE_PREFIX MAILTRANSPORT VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/mailtransportakonadi_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5MailTransportAkonadiConfigVersion.cmake" SOVERSION 5 ) set(mailtransportakonadi_lib_srcs dispatcherinterface.cpp attributeregistrar.cpp dispatchmodeattribute.cpp errorattribute.cpp transportattribute.cpp sentactionattribute.cpp sentbehaviourattribute.cpp messagequeuejob.cpp outboxactions.cpp filteractionjob.cpp ) ecm_qt_declare_logging_category(mailtransportakonadi_lib_srcs HEADER mailtransportakonadi_debug.h IDENTIFIER MAILTRANSPORTAKONADI_LOG CATEGORY_NAME org.kde.pim.mailtransportakonadi) add_library(KF5MailTransportAkonadi ${mailtransportakonadi_lib_srcs} ) generate_export_header(KF5MailTransportAkonadi BASE_NAME mailtransportakonadi) add_library(KF5::MailTransportAkonadi ALIAS KF5MailTransportAkonadi) target_include_directories(KF5MailTransportAkonadi INTERFACE "$") target_include_directories(KF5MailTransportAkonadi PUBLIC "$") target_link_libraries(KF5MailTransportAkonadi PUBLIC KF5::AkonadiCore KF5::Mime KF5::AkonadiMime KF5::MailTransport PRIVATE KF5::I18n KF5::CoreAddons KF5::ConfigGui ) set_target_properties(KF5MailTransportAkonadi PROPERTIES VERSION ${MAILTRANSPORT_VERSION_STRING} SOVERSION ${MAILTRANSPORT_SOVERSION} EXPORT_NAME MailTransportAkonadi ) install(TARGETS KF5MailTransportAkonadi EXPORT KF5MailTransportAkonadiTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) ecm_generate_headers(MailTransport_kmailtransportakonadi_CamelCase_HEADERS HEADER_NAMES DispatcherInterface MessageQueueJob TransportAttribute SentBehaviourAttribute DispatchModeAttribute ErrorAttribute SentActionAttribute PREFIX MailTransportAkonadi REQUIRED_HEADERS MailTransport_kmailtransportakonadi_HEADERS ) install(FILES ${MailTransport_kmailtransportakonadi_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransportAkonadi COMPONENT Devel ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mailtransportakonadi_export.h ${MailTransport_kmailtransportakonadi_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/mailtransportakonadi COMPONENT Devel ) ecm_generate_pri_file(BASE_NAME KMailTransportAkonadi LIB_NAME KF5MailTransportAkonadi DEPS "MailTransport AkonadiCore Mime AkonadiMime" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/MailTransportAkonadi/) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5MailTransportAkonadi") install(EXPORT KF5MailTransportAkonadiTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5MailTransportAkonadiTargets.cmake NAMESPACE KF5::) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/KF5MailTransportAkonadiConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5MailTransportAkonadiConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5MailTransportAkonadiConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5MailTransportAkonadiConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mailtransportakonadi_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) if(BUILD_TESTING) add_subdirectory(tests) - add_subdirectory(autotests) + if (KDEPIM_RUN_AKONADI_TEST) + add_subdirectory(autotests) + endif() endif() add_subdirectory(plugins)