diff --git a/CMakeLists.txt b/CMakeLists.txt index c65b6b83..3836b93d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,126 +1,124 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: cmake_minimum_required(VERSION 3.5) # KDE Frameworks set(KF5_VERSION "5.68.0") # handled by release scripts set(KF5_DEP_VERSION "5.67.0") # handled by release scripts project (KActivities VERSION ${KF5_VERSION}) option (KACTIVITIES_LIBRARY_ONLY "If true, compiles only the KActivities library, without the QML imports." OFF) option (KACTIVITIES_ENABLE_EXCEPTIONS "If you have Boost 1.53, you need to build KActivities with exceptions enabled. This is UNTESTED and EXPERIMENTAL!" OFF) set (REQUIRED_QT_VERSION 5.12.0) # We don't build in-source if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") message ( FATAL_ERROR "kactivities require an out of source build. Please create a separate build directory and run 'cmake path_to_sources [options]' there." ) endif () set (KACTIVITIES_CURRENT_ROOT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Extra CMake stuff include(FeatureSummary) find_package(ECM 5.67.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) include (KDEInstallDirs) include (KDECMakeSettings) include (KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include (GenerateExportHeader) include (ECMGenerateHeaders) include (ECMQtDeclareLoggingCategory) include (ECMAddQch) include (ECMMarkNonGuiExecutable) option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") # Qt set (CMAKE_AUTOMOC ON) find_package (Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core DBus) # Basic includes include (CPack) include (CMakePackageConfigHelpers) include (ECMSetupVersion) message ("We are using the ${CMAKE_CXX_COMPILER_ID} compiler") if ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (KACTIVITIES_OVERRIDE_VISIBILITY STREQUAL "default")) message ("Setting visibility preset to default") set(CMAKE_CXX_VISIBILITY_PRESET default) set(CMAKE_VISIBILITY_INLINES_HIDDEN 0) string (REPLACE "-fvisibility-inlines-hidden" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string (REPLACE "-fvisibility=hidden" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif () # libKActivities ecm_setup_version ( PROJECT VARIABLE_PREFIX KACTIVITIES VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kactivities_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfigVersion.cmake" SOVERSION 5 ) add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00) add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054300) add_definitions(-DQT_NO_FOREACH) add_subdirectory (src) if (BUILD_TESTING) add_subdirectory (autotests) add_subdirectory (tests) endif() set (CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Activities") if (BUILD_QCH) ecm_install_qch_export( TARGETS KF5Activities_QCH FILE KF5ActivitiesLibraryQchTargets.cmake DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ActivitiesLibraryQchTargets.cmake\")") endif() install ( EXPORT KF5ActivitiesLibraryTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5ActivitiesLibraryTargets.cmake NAMESPACE KF5:: ) configure_package_config_file ( "${CMAKE_CURRENT_SOURCE_DIR}/KF5ActivitiesConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} PATH_VARS KF5_INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX ) install ( FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/kactivities_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) -install(FILES kactivities.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) - # Write out the features feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/kactivities.categories b/kactivities.categories deleted file mode 100644 index 11648219..00000000 --- a/kactivities.categories +++ /dev/null @@ -1 +0,0 @@ -org.kde.kactivities.lib.core kactivities core lib DEFAULT_SEVERITY [WARNING] IDENTIFIER [KAMD_CORELIB] diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 83e45175..1eead03e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,40 +1,46 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: # Boosting us a bit if (NOT KACTIVITIES_LIBRARY_ONLY) find_package (Boost 1.49 REQUIRED) string (REGEX MATCH "1053.." BOOST_VERSION_BLACKLISTED ${Boost_VERSION}) if (BOOST_VERSION_BLACKLISTED AND NOT KACTIVITIES_ENABLE_EXCEPTIONS) message ( WARNING "Boost.Container 1.53 has issues when exceptions are disabled. " "We will set the KACTIVITIES_ENABLE_EXCEPTIONS option." ) set (KACTIVITIES_ENABLE_EXCEPTIONS ON) endif () endif () if (KACTIVITIES_ENABLE_EXCEPTIONS) string (REPLACE "-fno-exceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") add_definitions (-fexceptions) endif () # ======================================================= # Starting the actual project definition # The libraries do not depend on any compile-time features add_subdirectory (lib) if (NOT KACTIVITIES_LIBRARY_ONLY) include_directories ( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIR} ) add_subdirectory (imports) endif () add_subdirectory (cli) + +ecm_qt_install_logging_categories( + EXPORT KACTIVITIES + FILE kactivities.categories + DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} +) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index dd8c0731..ffb185b3 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -1,183 +1,190 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: # ======================================================= # Now that we finished with the boilerplate, start # with the library definition set ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp consumer.cpp controller.cpp info.cpp resourceinstance.cpp activitiesmodel.cpp mainthreadexecutor_p.cpp manager_p.cpp activitiescache_p.cpp ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/dbusfuture_p.cpp version.cpp ) set_source_files_properties ( ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml PROPERTIES INCLUDE ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.h ) qt5_add_dbus_interface ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml activities_interface ) qt5_add_dbus_interface ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Resources.xml resources_interface ) qt5_add_dbus_interface ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Features.xml features_interface ) qt5_add_dbus_interface ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml resources_linking_interface ) qt5_add_dbus_interface ( KActivities_LIB_SRCS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Application.xml application_interface ) -ecm_qt_declare_logging_category(KActivities_LIB_SRCS HEADER debug_p.h IDENTIFIER KAMD_CORELIB CATEGORY_NAME org.kde.kactivities.lib.core DEFAULT_SEVERITY Warning) +ecm_qt_declare_logging_category(KActivities_LIB_SRCS + HEADER debug_p.h + IDENTIFIER KAMD_CORELIB + CATEGORY_NAME org.kde.kactivities.lib.core + DEFAULT_SEVERITY Warning + DESCRIPTION "kactivities core lib" + EXPORT KACTIVITIES +) add_library ( KF5Activities SHARED ${KActivities_LIB_SRCS} ) add_library (KF5::Activities ALIAS KF5Activities) set(KACTIVITIES_BUILD_INCLUDE_DIRS ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/ ) include_directories (${KACTIVITIES_BUILD_INCLUDE_DIRS}) set_target_properties ( KF5Activities PROPERTIES VERSION ${KACTIVITIES_VERSION_STRING} SOVERSION ${KACTIVITIES_SOVERSION} EXPORT_NAME Activities ) target_link_libraries ( KF5Activities PUBLIC Qt5::Core PRIVATE Qt5::DBus ) target_include_directories ( KF5Activities INTERFACE "$" ) # install generate_export_header (KF5Activities BASE_NAME KActivities) ecm_generate_headers ( KActivities_CamelCase_HEADERS HEADER_NAMES Consumer Controller Info ResourceInstance ActivitiesModel Version PREFIX KActivities REQUIRED_HEADERS KActivities_HEADERS ) install ( FILES ${KActivities_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/KActivities COMPONENT Devel ) install ( FILES ${KActivities_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kactivities_export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/kactivities COMPONENT Devel ) install ( TARGETS KF5Activities EXPORT KF5ActivitiesLibraryTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} ) if(BUILD_QCH) ecm_add_qch( KF5Activities_QCH NAME KActivities BASE_NAME KF5Activities VERSION ${KF5_VERSION} ORG_DOMAIN org.kde SOURCES # using only public headers, to cover only public API ${KActivities_HEADERS} MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" LINK_QCHS Qt5Core_QCH INCLUDE_DIRS ${KACTIVITIES_BUILD_INCLUDE_DIRS} BLANK_MACROS KACTIVITIES_EXPORT KACTIVITIES_DEPRECATED KACTIVITIES_DEPRECATED_EXPORT TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} COMPONENT Devel ) endif() if (NOT WIN32) configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/libKActivities.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc DESTINATION ${KDE_INSTALL_LIBDIR}/pkgconfig ) endif () include (ECMGeneratePriFile) ecm_generate_pri_file ( BASE_NAME KActivities LIB_NAME KF5Activities FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities ) install ( FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR} )