Warning, /frameworks/krunner/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # SPDX-FileCopyrightText: KDE Contributors
0002 # SPDX-License-Identifier: BSD-2-Clause
0003 
0004 # TODO: merge QML plugin from Milou into this instead and provide a plugin again officially,
0005 # named "org.kde.krunner" to follow naming pattern for QML plugins from KF modules
0006 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0007    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.0.0)
0008     # deprecated plugin org.kde.runnermodel, no users known
0009     add_subdirectory(declarative)
0010 endif()
0011 
0012 configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
0013 
0014 add_library(KF5Runner SHARED)
0015 add_library(KF5::Runner ALIAS KF5Runner)
0016 
0017 target_sources(KF5Runner PRIVATE
0018     abstractrunner.cpp
0019     abstractrunner.h
0020     abstractrunner_p.h
0021     abstractrunnertest.h
0022     dbusrunner.cpp
0023     dbusrunner_p.h
0024     dbusutils_p.h
0025     querymatch.cpp
0026     querymatch.h
0027     runnercontext.cpp
0028     runnercontext.h
0029     runnerjobs.cpp
0030     runnerjobs_p.h
0031     runnermanager.cpp
0032     runnermanager.h
0033     runnersyntax.cpp
0034     runnersyntax.h
0035     krunner.qrc
0036 )
0037 ecm_qt_declare_logging_category(KF5Runner
0038     HEADER krunner_debug.h
0039     IDENTIFIER KRUNNER
0040     CATEGORY_NAME kf.runner
0041     OLD_CATEGORY_NAMES org.kde.krunner
0042     DESCRIPTION "KRunner"
0043     EXPORT KRUNNER
0044 )
0045 set_property(SOURCE "data/org.kde.krunner1.xml" PROPERTY INCLUDE dbusutils_p.h)
0046 
0047 ecm_generate_export_header(KF5Runner
0048     BASE_NAME KRunner
0049     GROUP_BASE_NAME KF
0050     VERSION ${KF_VERSION}
0051     DEPRECATED_BASE_VERSION 0
0052     DEPRECATION_VERSIONS 5.28 5.71 5.72 5.73 5.76 5.77 5.79 5.81 5.82 5.85 5.86 5.88 5.99 5.106 5.113
0053     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0054 )
0055 
0056 set(KRunner_BUILD_INCLUDE_DIRS ${KRunner_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
0057 target_include_directories(KF5Runner INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KRunner>")
0058 target_include_directories(KF5Runner PUBLIC "$<BUILD_INTERFACE:${KRunner_BUILD_INCLUDE_DIRS}>")
0059 
0060 
0061 target_link_libraries(KF5Runner
0062     PUBLIC
0063         Qt${QT_MAJOR_VERSION}::Core
0064         KF5::I18n
0065         KF5::CoreAddons # KPluginFactory
0066     PRIVATE
0067         Qt${QT_MAJOR_VERSION}::DBus
0068         Qt${QT_MAJOR_VERSION}::Widgets
0069         KF5::ThreadWeaver
0070 )
0071 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0072    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.91.0)
0073     target_link_libraries(KF5Runner
0074         PUBLIC
0075             KF5::Service # KPluginInfo
0076             KF5::Plasma # Must be public because abstractrunner.h needs plasma/version.h
0077         PRIVATE
0078             KF5::KIOCore #KProtocolInfo
0079     )
0080 endif()
0081 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND
0082    EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.94.0)
0083     target_link_libraries(KF5Runner PUBLIC Qt${QT_MAJOR_VERSION}::Gui KF5::ConfigCore)
0084 else()
0085     target_link_libraries(KF5Runner PRIVATE Qt${QT_MAJOR_VERSION}::Gui KF5::ConfigCore)
0086 endif()
0087 if(HAVE_KACTIVITIES)
0088     target_link_libraries(KF5Runner PRIVATE KF5::Activities)
0089 endif()
0090 
0091 set_target_properties(KF5Runner
0092     PROPERTIES VERSION ${KRUNNER_VERSION}
0093     SOVERSION 5
0094     EXPORT_NAME "Runner"
0095 )
0096 
0097 ecm_generate_headers(KRunner_CamelCase_HEADERS
0098   HEADER_NAMES
0099     AbstractRunner
0100     RunnerContext
0101     RunnerManager
0102     RunnerSyntax
0103     QueryMatch
0104     AbstractRunnerTest
0105 
0106     PREFIX KRunner
0107     REQUIRED_HEADERS KRunner_HEADERS
0108 )
0109 
0110 # Install files
0111 
0112 install(TARGETS KF5Runner
0113         EXPORT KF5RunnerTargets
0114         ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0115 
0116 install(FILES ${KRunner_CamelCase_HEADERS}
0117         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KRunner/KRunner
0118         COMPONENT Devel)
0119 
0120 install(FILES
0121             ${CMAKE_CURRENT_BINARY_DIR}/krunner_export.h
0122             ${KRunner_HEADERS}
0123         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KRunner/krunner
0124         COMPONENT Devel)
0125 
0126 install(FILES
0127    data/servicetypes/plasma-runner.desktop
0128    DESTINATION ${KDE_INSTALL_KSERVICETYPESDIR})
0129 
0130 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/data/kservicetypes5)
0131 add_custom_command(TARGET KF5Runner PRE_BUILD COMMAND
0132     ${CMAKE_COMMAND} -E copy
0133     ${CMAKE_CURRENT_SOURCE_DIR}/data/servicetypes/plasma-runner.desktop
0134     ${CMAKE_BINARY_DIR}/bin/data/kservicetypes5)
0135 
0136 ecm_qt_install_logging_categories(
0137     EXPORT KRUNNER
0138     FILE krunner.categories
0139     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0140 )
0141 
0142 
0143 if(BUILD_QCH)
0144     ecm_add_qch(
0145         KF5Runner_QCH
0146         NAME KRunner
0147         BASE_NAME KF5Runner
0148         VERSION ${KF_VERSION}
0149         ORG_DOMAIN org.kde
0150         SOURCES # using only public headers, to cover only public API
0151             ${KRunner_HEADERS}
0152         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0153         LINK_QCHS
0154             Qt5Core_QCH
0155         INCLUDE_DIRS
0156             ${KRunner_BUILD_INCLUDE_DIRS}
0157         BLANK_MACROS
0158             KRUNNER_EXPORT
0159             KRUNNER_DEPRECATED
0160             KRUNNER_DEPRECATED_EXPORT
0161             "KRUNNER_DEPRECATED_VERSION(x, y, t)"
0162             "KRUNNER_DEPRECATED_VERSION_BELATED(x, y, xt, yt, t)"
0163             "KRUNNER_ENUMERATOR_DEPRECATED_VERSION(x, y, t)"
0164         PREDEFINED_MACROS
0165             "KSERVICE_BUILD_DEPRECATED_SINCE(x, y)=1"
0166             "PLASMA_ENABLE_DEPRECATED_SINCE(x, y)=1"
0167         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0168         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0169         COMPONENT Devel
0170     )
0171 endif()
0172 
0173 include(ECMGeneratePriFile)
0174 ecm_generate_pri_file(BASE_NAME KRunner LIB_NAME KF5Runner DEPS "core" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KRunner)
0175 install(FILES ${PRI_FILENAME}
0176         DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0177 
0178 install(FILES
0179    "data/org.kde.krunner1.xml"
0180    DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR}
0181    RENAME kf5_org.kde.krunner1.xml)