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

0001 include(CheckSymbolExists)
0002 include(CheckFunctionExists)
0003 check_function_exists(mmap HAVE_MMAP)
0004 check_symbol_exists(posix_madvise "sys/mman.h" HAVE_MADVISE)
0005 configure_file(config-ksycoca.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-ksycoca.h )
0006 
0007 add_library(KF6Service)
0008 add_library(KF6::Service ALIAS KF6Service)
0009 
0010 set_target_properties(KF6Service PROPERTIES
0011     VERSION     ${KSERVICE_VERSION}
0012     SOVERSION   ${KSERVICE_SOVERSION}
0013     EXPORT_NAME Service
0014 )
0015 
0016 target_sources(KF6Service PRIVATE
0017    services/kapplicationtrader.cpp
0018    services/kmimetypefactory.cpp
0019    services/kservice.cpp
0020    services/kserviceaction.cpp
0021    services/kservicefactory.cpp
0022    services/kservicegroup.cpp
0023    services/kservicegroupfactory.cpp
0024    services/kserviceoffer.cpp
0025    sycoca/ksycoca.cpp
0026    sycoca/ksycocadevices.cpp
0027    sycoca/ksycocadict.cpp
0028    sycoca/ksycocaentry.cpp
0029    sycoca/ksycocafactory.cpp
0030    sycoca/kmemfile.cpp
0031    sycoca/kbuildmimetypefactory.cpp
0032    sycoca/kbuildservicefactory.cpp
0033    sycoca/kbuildservicegroupfactory.cpp
0034    sycoca/kbuildsycoca.cpp
0035    sycoca/kctimefactory.cpp
0036    sycoca/kmimeassociations.cpp
0037    sycoca/vfolder_menu.cpp
0038 )
0039 
0040 ecm_qt_declare_logging_category(KF6Service
0041     HEADER servicesdebug.h
0042     IDENTIFIER SERVICES
0043     CATEGORY_NAME kf.service.services
0044     OLD_CATEGORY_NAMES kf5.kservice.services
0045     EXPORT KSERVICE
0046     DESCRIPTION "service (kservice lib)"
0047 )
0048 ecm_qt_declare_logging_category(KF6Service
0049     HEADER sycocadebug.h
0050     IDENTIFIER SYCOCA
0051     CATEGORY_NAME kf.service.sycoca
0052     OLD_CATEGORY_NAMES kf5.kservice.sycoca
0053     EXPORT KSERVICE
0054     DESCRIPTION "sycoca (kservice)"
0055 )
0056 
0057 ecm_generate_export_header(KF6Service
0058     BASE_NAME KService
0059     GROUP_BASE_NAME KF
0060     VERSION ${KF_VERSION}
0061     USE_VERSION_HEADER
0062     DEPRECATED_BASE_VERSION 0
0063     DEPRECATION_VERSIONS 5.90
0064     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0065 )
0066 
0067 set(kservice_includes
0068    ${CMAKE_CURRENT_BINARY_DIR}/.. # Since we publicly include kservice_version.h
0069    ${CMAKE_CURRENT_SOURCE_DIR}/services
0070    ${CMAKE_CURRENT_SOURCE_DIR}/sycoca
0071 )
0072 target_include_directories(KF6Service
0073     PUBLIC
0074         "$<BUILD_INTERFACE:${kservice_includes}>"
0075     INTERFACE
0076         "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KService>"
0077 )
0078 
0079 target_link_libraries(KF6Service
0080 PUBLIC
0081     Qt6::Core
0082 PRIVATE
0083     Qt6::Xml  # (for vfolder menu) QDomDocument
0084     KF6::ConfigCore   # KConfig and friends
0085     KF6::CoreAddons   # KShell
0086 )
0087 
0088 ecm_generate_headers(KService_HEADERS
0089   HEADER_NAMES
0090   KSycoca
0091   KSycocaEntry
0092   KSycocaType
0093 
0094   RELATIVE sycoca REQUIRED_HEADERS KService_HEADERS
0095 )
0096 ecm_generate_headers(KService_HEADERS
0097   HEADER_NAMES
0098   KApplicationTrader
0099   KService
0100   KServiceAction
0101   KServiceGroup
0102 
0103   RELATIVE services REQUIRED_HEADERS KService_HEADERS
0104 )
0105 
0106 if (WIN32)
0107 install( FILES applications.menu  DESTINATION  ${KDE_INSTALL_DATAROOTDIR}/xdg/menus  RENAME ${APPLICATIONS_MENU_NAME} )
0108 else ()
0109 install( FILES applications.menu  DESTINATION  ${KDE_INSTALL_SYSCONFDIR}/xdg/menus  RENAME ${APPLICATIONS_MENU_NAME} )
0110 endif ()
0111 
0112 # Local copy for the unittests
0113 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/data/menus)
0114 add_custom_command(TARGET KF6Service PRE_BUILD COMMAND
0115     ${CMAKE_COMMAND} -E copy
0116     ${CMAKE_CURRENT_SOURCE_DIR}/applications.menu
0117     ${CMAKE_BINARY_DIR}/bin/data/menus/${APPLICATIONS_MENU_NAME})
0118 
0119 install(TARGETS KF6Service EXPORT KF6ServiceTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0120 
0121 install(FILES
0122    "${CMAKE_CURRENT_BINARY_DIR}/kservice_export.h"
0123    ${KService_HEADERS}
0124    DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KService COMPONENT Devel
0125 )
0126 
0127 ecm_qt_install_logging_categories(
0128     EXPORT KSERVICE
0129     FILE kservice.categories
0130     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0131 )
0132 
0133 if(BUILD_QCH)
0134     ecm_add_qch(
0135         KF6Service_QCH
0136         NAME KService
0137         BASE_NAME KF6Service
0138         VERSION ${KF_VERSION}
0139         ORG_DOMAIN org.kde
0140         SOURCES # using only public headers, to cover only public API
0141             ${KService_HEADERS}
0142         MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0143         LINK_QCHS
0144             KF6Config_QCH
0145             KF6CoreAddons_QCH
0146         INCLUDE_DIRS
0147             ${CMAKE_CURRENT_BINARY_DIR}
0148             ${kservice_includes}
0149         BLANK_MACROS
0150             KSERVICE_EXPORT
0151             KSERVICE_DEPRECATED
0152             KSERVICE_DEPRECATED_EXPORT
0153             "KSERVICE_DEPRECATED_VERSION(x, y, t)"
0154             "KSERVICE_DEPRECATED_VERSION_BELATED(x, y, xt, yt, t)"
0155         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0156         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0157         COMPONENT Devel
0158     )
0159 endif()
0160 
0161 add_subdirectory(kbuildsycoca)
0162 
0163 include(ECMGeneratePriFile)
0164 ecm_generate_pri_file(BASE_NAME KService LIB_NAME KF6Service DEPS "KConfigCore" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KService)
0165 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})