diff --git a/CMakeLists.txt b/CMakeLists.txt index 76acdae..1935dfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,94 +1,93 @@ cmake_minimum_required(VERSION 3.5) set(KF5_VERSION "5.56.0") # handled by release scripts set(KF5_DEP_VERSION "5.55.0") # handled by release scripts project(KCMUtils VERSION ${KF5_VERSION}) include(FeatureSummary) find_package(ECM 5.55.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) include(KDEInstallDirs) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) set(REQUIRED_QT_VERSION 5.10.0) find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED Widgets DBus Qml Quick QuickWidgets) set(KCMUtils_AUTOMOC_MACRO_NAMES "KCMODULECONTAINER") if(NOT CMAKE_VERSION VERSION_LESS "3.10.0") # CMake 3.9+ warns about automoc on files without Q_OBJECT, and doesn't know about other macros. # 3.10+ lets us provide more macro names that require automoc. list(APPEND CMAKE_AUTOMOC_MACRO_NAMES ${KCMUtils_AUTOMOC_MACRO_NAMES}) endif() include(GenerateExportHeader) include(ECMSetupVersion) include(ECMGenerateHeaders) include(CMakePackageConfigHelpers) include(ECMAddQch) 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)") ecm_setup_version(PROJECT VARIABLE_PREFIX KCMUTILS VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcmutils_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5KCMUtilsConfigVersion.cmake" SOVERSION 5) find_package(KF5ItemViews ${KF5_DEP_VERSION} REQUIRED) find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED) find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED) find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Service ${KF5_DEP_VERSION} REQUIRED) find_package(KF5XmlGui ${KF5_DEP_VERSION} REQUIRED) find_package(KF5Declarative ${KF5_DEP_VERSION} REQUIRED) -find_package(KF5Auth ${KF5_DEP_VERSION} REQUIRED) add_definitions(-DTRANSLATION_DOMAIN=\"kcmutils5\") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ki18n_install(po) endif() add_subdirectory(src) # create a Config.cmake and a ConfigVersion.cmake file and install them set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5KCMUtils") if (BUILD_QCH) ecm_install_qch_export( TARGETS KF5KCMUtils_QCH FILE KF5KCMUtilsQchTargets.cmake DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5KCMUtilsQchTargets.cmake\")") endif() configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/KF5KCMUtilsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5KCMUtilsConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5KCMUtilsConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5KCMUtilsConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(EXPORT KF5KCMUtilsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5KCMUtilsTargets.cmake NAMESPACE KF5:: ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcmutils_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2fb17f2..dd5cbd6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,113 +1,112 @@ ########### kcmutils ############### set(kcmutils_LIB_SRCS kcmoduleinfo.cpp kcmoduleloader.cpp kcmoduleqml.cpp kcmultidialog.cpp kcmoduleproxy.cpp kpluginselector.cpp kcmodulecontainer.cpp ksettingswidgetadaptor.cpp ksettings/dispatcher.cpp ksettings/dialog.cpp ksettings/pluginpage.cpp ksettings/componentsdialog.cpp ) add_library(KF5KCMUtils ${kcmutils_LIB_SRCS}) generate_export_header(KF5KCMUtils BASE_NAME KCMUtils) target_include_directories(KF5KCMUtils INTERFACE "$") target_link_libraries(KF5KCMUtils PUBLIC Qt5::Widgets KF5::ConfigWidgets # KCModule KF5::Service # KService PRIVATE Qt5::DBus # dbus usage in kcmoduleproxy.cpp Qt5::Qml Qt5::Quick Qt5::QuickWidgets KF5::CoreAddons KF5::I18n KF5::IconThemes # KIconLoader KF5::ItemViews # KWidgetItemDelegate KF5::XmlGui # KAboutApplicationDialog KF5::QuickAddons KF5::Declarative KF5::Package - KF5::Auth #KAuthAction ) set_target_properties(KF5KCMUtils PROPERTIES VERSION ${KCMUTILS_VERSION_STRING} SOVERSION ${KCMUTILS_SOVERSION} EXPORT_NAME KCMUtils) ecm_generate_headers(KCMUtils_HEADERS HEADER_NAMES KCModuleInfo KCModuleLoader KCMultiDialog KCModuleProxy KPluginSelector KCModuleContainer REQUIRED_HEADERS KCMUtils_HEADERS ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcmutils_export.h ${KCMUtils_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCMUtils COMPONENT Devel ) ecm_generate_headers(KSettings_HEADERS HEADER_NAMES Dispatcher Dialog PluginPage RELATIVE ksettings REQUIRED_HEADERS KSettings_HEADERS ) install(FILES ${KSettings_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCMUtils/ksettings COMPONENT Devel ) install(TARGETS KF5KCMUtils EXPORT KF5KCMUtilsTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES kcmodule.desktop kcmoduleinit.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR} ) if(BUILD_QCH) ecm_add_qch( KF5KCMUtils_QCH NAME KCMUtils BASE_NAME KF5KCMUtils VERSION ${KF5_VERSION} ORG_DOMAIN org.kde SOURCES # using only public headers, to cover only public API ${KCMUtils_HEADERS} ${KSettings_HEADERS} ksettings/README.dox MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" LINK_QCHS Qt5Widgets_QCH KF5ConfigWidgets_QCH KF5Service_QCH BLANK_MACROS KCMUTILS_EXPORT KCMUTILS_DEPRECATED KCMUTILS_DEPRECATED_EXPORT TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} COMPONENT Devel ) endif() include(ECMGeneratePriFile) ecm_generate_pri_file(BASE_NAME KCMUtils LIB_NAME KF5KCMUtils DEPS "widgets KConfigWidgets KService" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KCMUtils) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})