diff --git a/CMakeLists.txt b/CMakeLists.txt index 7488b4b..b9b8604 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,145 +1,145 @@ project(ktp-common-internals) cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) find_package(ECM 1.7.0 REQUIRED NO_MODULE) set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ) cmake_policy(SET CMP0002 OLD) # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "20") set (RELEASE_SERVICE_VERSION_MINOR "03") set (RELEASE_SERVICE_VERSION_MICRO "70") # Bump for every 0.x release, or whenever BC changes set (KTP_SONUMBER 9) # SO 9 is for 15.08 release set (KTP_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") set (KTP_MESSAGE_FILTER_FRAMEWORK_VERSION "5") find_package (Qt5 REQUIRED CONFIG COMPONENTS DBus Qml Test Xml) find_package (KF5 5.11 REQUIRED COMPONENTS CoreAddons Notifications KIO WidgetsAddons KCMUtils NotifyConfig TextEditor Wallet Config WindowSystem IconThemes People) -set(REQUIRED_TPQT_VERSION 0.9.5) +set(REQUIRED_TPQT_VERSION 0.9.8) -find_package (TelepathyQt5 ${REQUIRED_TPQT_VERSION} REQUIRED) -find_package (TelepathyQt5Service ${REQUIRED_TPQT_VERSION} REQUIRED) #used for the otr-proxy +find_package (TelepathyQt5 ${REQUIRED_TPQT_VERSION} COMPONENTS Core REQUIRED) +find_package (TelepathyQt5 ${REQUIRED_TPQT_VERSION} COMPONENTS Service) #used for the otr-proxy find_package (TelepathyLoggerQt) find_package (KAccounts) find_package (AccountsQt5 1.10 CONFIG) find_package (SignOnQt5 8.55 CONFIG) find_package (LibOTR 4.0.0) find_package (Libgcrypt) find_package (telepathy-accounts-signon) -if (LIBOTR_FOUND AND LIBGCRYPT_FOUND) +if (LIBOTR_FOUND AND LIBGCRYPT_FOUND AND TARGET TelepathyQt5::Service) set(OTR_LIBS_FOUND TRUE) endif () include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMMarkNonGuiExecutable) include(ECMPackageConfigHelpers) include(ECMInstallIcons) include(ECMSetupVersion) include(GenerateExportHeader) include(CMakePackageConfigHelpers) include(WriteBasicConfigVersionFile) include(CheckIncludeFiles) include(FeatureSummary) set_package_properties(KF5People PROPERTIES DESCRIPTION "Support for KDE Contact Aggregation" URL "https://commits.kde.org/kpeople" TYPE OPTIONAL ) set_package_properties(TelepathyLoggerQt PROPERTIES DESCRIPTION "Qt bindings for TelepathyLogger. This is needed to provide access to chat logs. HIGHLY recommended" URL "https://commits.kde.org/telepathy-logger-qt" TYPE OPTIONAL ) set_package_properties(LibOTR PROPERTIES DESCRIPTION "Required for OTR support" TYPE OPTIONAL) set_package_properties(Libgcrypt PROPERTIES DESCRIPTION "Required for OTR support" TYPE OPTIONAL) set_package_properties(telepathy-accounts-signon PROPERTIES PURPOSE "Runtime-only dependency on a Telepathy Mission Control plugin, currently residing at https://gitlab.com/accounts-sso/telepathy-accounts-signon" TYPE RUNTIME ) add_definitions(-DKTP_MESSAGE_FILTER_FRAMEWORK_VERSION=\"${KTP_MESSAGE_FILTER_FRAMEWORK_VERSION}\") add_definitions(-DTRANSLATION_DOMAIN=\"ktp-common-internals\") add_definitions ( -DQT_NO_CAST_FROM_ASCII -DQT_NO_KEYWORDS -std=c++11 ) add_definitions(-DQT_NO_URL_CAST_FROM_STRING) include_directories ( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) if (KF5People_FOUND) add_definitions(-DHAVE_KPEOPLE) add_subdirectory(kpeople) endif () #If we find KAccounts library, build the plugin for it if (KAccounts_FOUND AND AccountsQt5_FOUND AND SignOnQt5_FOUND) include_directories(${ACCOUNTSQT_INCLUDE_DIRS} ${SIGNONQT_INCLUDE_DIRS}) add_subdirectory(kaccounts) endif () ecm_setup_version(${KTP_VERSION} VARIABLE_PREFIX KTP VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ktp_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KTpConfigVersion.cmake" SOVERSION ${KTP_SONUMBER}) add_subdirectory(KTp) add_subdirectory(tools) add_subdirectory(data) add_subdirectory(tests) if (OTR_LIBS_FOUND) include_directories (${LIBOTR_INCLUDE_DIR} ${LIBGCRYPT_INCLUDE_DIR} ) add_subdirectory(otr-proxy) endif (OTR_LIBS_FOUND) set(CMAKECONFIG_INSTALL_DIR "${CMAKECONFIG_INSTALL_PREFIX}/KTp") ecm_configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KTpConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KTpConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KTpConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KTpConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(EXPORT KTpTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KTpTargets.cmake NAMESPACE KTp:: COMPONENT Devel) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/KTp/CMakeLists.txt b/KTp/CMakeLists.txt index ffbce10..e5a6e45 100644 --- a/KTp/CMakeLists.txt +++ b/KTp/CMakeLists.txt @@ -1,132 +1,131 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) set (ktp_common_internals_private_SRCS abstract-message-filter.cpp account-factory.cpp actions.cpp capabilities-hack-private.cpp circular-countdown.cpp contact.cpp contact-factory.cpp core.cpp debug.cpp error-dictionary.cpp global-contact-manager.cpp global-presence.cpp logs-importer.cpp logs-importer-private.cpp message.cpp message-context.cpp message-escape-filter.cpp message-filter-config-manager.cpp message-processor.cpp outgoing-message.cpp persistent-contact.cpp presence.cpp service-availability-checker.cpp telepathy-handler-application.cpp text-parser.cpp pending-wallet.cpp wallet-interface.cpp wallet-utils.cpp ) set (ktp_common_internals_private_HDRS abstract-message-filter.h actions.h circular-countdown.h contact.h contact-factory.h core.h debug.h error-dictionary.h global-contact-manager.h global-presence.h logs-importer.h message-filter-config-manager.h message.h message-context.h message-processor.h outgoing-message.h persistent-contact.h presence.h service-availability-checker.h telepathy-handler-application.h text-parser.h pending-wallet.h wallet-interface.h wallet-utils.h types.h ${CMAKE_CURRENT_BINARY_DIR}/ktpcommoninternals_export.h ) if (TelepathyLoggerQt_FOUND) set (ktp_private_LIBS ${ktp_private_LIBS} ${TELEPATHY_LOGGER_LIBRARIES} ) endif () if (KF5People_FOUND) set (ktp_private_LIBS ${ktp_private_LIBS} KF5::People ) endif() add_library (KTpCommonInternals ${ktp_common_internals_private_SRCS} ) add_library (KTp::CommonInternals ALIAS KTpCommonInternals) generate_export_header(KTpCommonInternals BASE_NAME KTpCommonInternals) #Raise SOVERSION for every 0.x cycle set_target_properties(KTpCommonInternals PROPERTIES VERSION ${KTP_VERSION} SOVERSION ${KTP_SONUMBER} EXPORT_NAME CommonInternals DEFINE_SYMBOL MAKE_KTP_LIB) target_link_libraries (KTpCommonInternals PUBLIC Qt5::DBus Qt5::Xml KF5::Wallet #included from wallet-interface.h - ${TELEPATHY_QT5_LIBRARIES} + TelepathyQt5::Core PRIVATE ${ktp_private_LIBS} KF5::KIOWidgets KF5::I18n KF5::IconThemes KF5::Notifications KF5::IconThemes ) -target_include_directories(KTpCommonInternals PUBLIC ${TELEPATHY_QT5_INCLUDE_DIR}) # TODO: Remove when TelepathyQt exports include paths properly install (TARGETS KTpCommonInternals EXPORT KTpTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) install (FILES ${ktp_common_internals_private_HDRS} DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KTp ) add_subdirectory(Declarative) add_subdirectory(Models) add_subdirectory(Widgets) add_subdirectory(Logger) add_subdirectory(OTR) # API docs find_package(Doxygen) if(DOXYGEN_EXECUTABLE) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) add_custom_target( apidox COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile) endif() diff --git a/KTp/OTR/CMakeLists.txt b/KTp/OTR/CMakeLists.txt index 0743e25..3ceb662 100644 --- a/KTp/OTR/CMakeLists.txt +++ b/KTp/OTR/CMakeLists.txt @@ -1,45 +1,44 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) set (ktp_otr_private_HDRS channel-adapter.h channel-proxy-interface.h constants.h proxy-service-interface.h types.h utils.h ${CMAKE_CURRENT_BINARY_DIR}/ktpotr_export.h ) add_library (KTpOTR SHARED channel-adapter.cpp channel-proxy-interface.cpp proxy-service-interface.cpp types.cpp utils.cpp debug.cpp) add_library(KTp::OTR ALIAS KTpOTR) set_target_properties(KTpOTR PROPERTIES VERSION ${KTP_VERSION} SOVERSION ${KTP_SONUMBER} EXPORT_NAME OTR DEFINE_SYMBOL MAKE_KTP_LIB) generate_export_header(KTpOTR) target_link_libraries (KTpOTR PUBLIC Qt5::DBus - ${TELEPATHY_QT5_LIBRARIES} + TelepathyQt5::Core PRIVATE KF5::I18n ) -target_include_directories(KTpOTR PUBLIC ${TELEPATHY_QT5_INCLUDE_DIR}) # TODO: Remove when TelepathyQt exports include paths properly install (TARGETS KTpOTR EXPORT KTpTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) install (FILES ${ktp_otr_private_HDRS} DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KTp/OTR ) diff --git a/otr-proxy/KTpProxy/CMakeLists.txt b/otr-proxy/KTpProxy/CMakeLists.txt index 0a9cddb..478cd5f 100644 --- a/otr-proxy/KTpProxy/CMakeLists.txt +++ b/otr-proxy/KTpProxy/CMakeLists.txt @@ -1,37 +1,37 @@ set(ktp-proxy_SRCS proxy-observer.cpp proxy-service-adaptee.cpp proxy-service.cpp svc-channel-proxy.cpp svc-proxy-service.cpp otr-proxy-channel.cpp otr-proxy-channel-adaptee.cpp pending-curry-operation.cpp otr-session.cpp otr-manager.cpp otr-message.cpp otr-config.cpp otr-utils.cpp ktp-proxy-debug.cpp ) kconfig_add_kcfg_files(ktp-proxy_SRCS ktp-proxy-config.kcfgc) add_library(ktp-proxy-lib STATIC ${ktp-proxy_SRCS}) set(ktp-proxy_LIBS ${LIBOTR_LIBRARY} ${LIBGCRYPT_LIBRARIES} - ${TELEPATHY_QT5_SERVICE_LIBRARIES} + TelepathyQt5::Service KTp::CommonInternals KTp::OTR KF5::ConfigGui ) target_link_libraries(ktp-proxy-lib ${ktp-proxy_LIBS}) add_executable(ktp-proxy main.cpp) target_link_libraries(ktp-proxy ktp-proxy-lib) install(TARGETS ktp-proxy DESTINATION ${LIBEXEC_INSTALL_DIR}) install(FILES ktp-proxy-config.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR})