Warning, /frameworks/kguiaddons/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
0002
0003 add_library(KF5GuiAddons)
0004 add_library(KF5::GuiAddons ALIAS KF5GuiAddons)
0005
0006 set_target_properties(KF5GuiAddons PROPERTIES
0007 VERSION ${KGUIADDONS_VERSION}
0008 SOVERSION ${KGUIADDONS_SOVERSION}
0009 EXPORT_NAME GuiAddons
0010 )
0011
0012 target_sources(KF5GuiAddons PRIVATE
0013 colors/kcolorspaces.cpp
0014 colors/kcolorutils.cpp
0015 colors/kcolorcollection.cpp
0016 colors/kcolormimedata.cpp
0017 colors/kcolorschemewatcher.cpp
0018 colors/kcolorschemewatcherbackend.cpp
0019 text/kdatevalidator.cpp
0020 text/kwordwrap.cpp
0021 fonts/kfontutils.cpp
0022 util/kiconutils.cpp
0023 util/klocalimagecacheimpl.cpp
0024 util/kmodifierkeyinfo.cpp
0025 util/kmodifierkeyinfoprovider.cpp
0026 util/kurlhandler_p.cpp
0027 util/kcursorsaver.cpp
0028 recorder/keyboardgrabber.cpp
0029 recorder/keysequencerecorder.cpp
0030 systemclipboard/qtclipboard.cpp
0031 systemclipboard/ksystemclipboard.cpp
0032
0033 colors/kcolorspaces_p.h
0034 colors/kcolorutils.h
0035 colors/kcolorcollection.h
0036 colors/kcolormimedata.h
0037 text/kdatevalidator.h
0038 text/kwordwrap.h
0039 fonts/kfontutils.h
0040 util/kiconutils.h
0041 util/klocalimagecacheimpl.h
0042 util/kmodifierkeyinfo.h
0043 util/kmodifierkeyinfoprovider_p.h
0044 util/kurlhandler_p.h
0045 util/kcursorsaver.h
0046 recorder/keyboardgrabber_p.h
0047 recorder/keysequencerecorder.h
0048 systemclipboard/qtclipboard_p.h
0049 systemclipboard/ksystemclipboard.h
0050 )
0051
0052 ecm_qt_declare_logging_category(KF5GuiAddons
0053 HEADER kguiaddons_debug.h
0054 IDENTIFIER KGUIADDONS_LOG
0055 CATEGORY_NAME kf.guiaddons
0056 DESCRIPTION "KGuiAddons"
0057 EXPORT KGUIADDONS
0058 )
0059
0060 if(WIN32)
0061 target_sources(KF5GuiAddons PRIVATE colors/kcolorschemewatcher_win.cpp)
0062 target_link_libraries(KF5GuiAddons PRIVATE advapi32)
0063 endif()
0064
0065 if(APPLE)
0066 find_library(APPKIT_LIBRARY AppKit)
0067 target_sources(KF5GuiAddons PRIVATE colors/kcolorschemewatcher_mac.mm)
0068 target_link_libraries(KF5GuiAddons PRIVATE ${APPKIT_LIBRARY})
0069 endif()
0070
0071 if(WITH_DBUS)
0072 target_sources(KF5GuiAddons PRIVATE colors/kcolorschemewatcher_xdg.cpp)
0073 target_link_libraries(KF5GuiAddons PRIVATE Qt${QT_MAJOR_VERSION}::DBus)
0074 endif()
0075
0076 if(WITH_WAYLAND)
0077 if (TARGET Qt6::WaylandClient)
0078 qt_generate_wayland_protocol_client_sources(KF5GuiAddons
0079 FILES
0080 "${CMAKE_CURRENT_SOURCE_DIR}/recorder/keyboard-shortcuts-inhibit-unstable-v1.xml"
0081 "${CMAKE_CURRENT_SOURCE_DIR}/systemclipboard/wlr-data-control-unstable-v1.xml"
0082 "${PLASMA_WAYLAND_PROTOCOLS_DIR}/keystate.xml"
0083 "${Wayland_DATADIR}/wayland.xml"
0084 )
0085 else()
0086 set(wayland_SRCS)
0087 ecm_add_qtwayland_client_protocol(wayland_SRCS
0088 PROTOCOL recorder/keyboard-shortcuts-inhibit-unstable-v1.xml
0089 BASENAME keyboard-shortcuts-inhibit-unstable-v1
0090 )
0091 ecm_add_qtwayland_client_protocol(wayland_SRCS
0092 PROTOCOL systemclipboard/wlr-data-control-unstable-v1.xml
0093 BASENAME wlr-data-control-unstable-v1
0094 )
0095 ecm_add_qtwayland_client_protocol(wayland_SRCS
0096 PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/keystate.xml
0097 BASENAME keystate
0098 )
0099 ecm_add_qtwayland_client_protocol(wayland_SRCS
0100 PROTOCOL ${Wayland_DATADIR}/wayland.xml
0101 BASENAME wayland
0102 )
0103 target_sources(KF5GuiAddons PRIVATE
0104 ${wayland_SRCS}
0105 )
0106 endif()
0107 target_sources(KF5GuiAddons PRIVATE
0108 recorder/waylandinhibition.cpp
0109 systemclipboard/waylandclipboard.cpp
0110 util/kmodifierkeyinfoprovider_wayland.cpp
0111 recorder/waylandinhibition_p.h
0112 systemclipboard/waylandclipboard_p.h
0113 util/kmodifierkeyinfoprovider_wayland.h
0114 )
0115 target_compile_definitions(KF5GuiAddons PRIVATE WITH_WAYLAND)
0116 target_link_libraries(KF5GuiAddons PRIVATE Qt${QT_MAJOR_VERSION}::GuiPrivate Qt${QT_MAJOR_VERSION}::WaylandClient Wayland::Client)
0117 endif()
0118
0119 if(WITH_X11)
0120 target_sources(KF5GuiAddons PRIVATE util/kmodifierkeyinfoprovider_xcb.cpp util/kmodifierkeyinfoprovider_xcb.h)
0121 if (TARGET Qt5::X11Extras)
0122 target_link_libraries(KF5GuiAddons PRIVATE Qt5::X11Extras)
0123 endif()
0124 target_link_libraries(KF5GuiAddons PRIVATE X11::Xkb XCB::XCB)
0125 endif()
0126
0127 generate_export_header(KF5GuiAddons BASE_NAME KGuiAddons)
0128
0129 set(kguiaddons_INCLUDES
0130 ${CMAKE_CURRENT_SOURCE_DIR}/colors
0131 ${CMAKE_CURRENT_SOURCE_DIR}/fonts
0132 ${CMAKE_CURRENT_SOURCE_DIR}/text
0133 ${CMAKE_CURRENT_SOURCE_DIR}/util
0134 ${CMAKE_CURRENT_SOURCE_DIR}/recorder
0135 ${CMAKE_CURRENT_SOURCE_DIR}/systemclipboard
0136 )
0137 target_include_directories(KF5GuiAddons PUBLIC "$<BUILD_INTERFACE:${kguiaddons_INCLUDES}>")
0138 target_include_directories(KF5GuiAddons INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KGuiAddons>" )
0139 target_compile_definitions(KF5GuiAddons INTERFACE "$<INSTALL_INTERFACE:KGUIADDONS_LIB>")
0140 target_link_libraries(KF5GuiAddons PUBLIC Qt${QT_MAJOR_VERSION}::Gui)
0141
0142 ecm_generate_headers(KGuiAddons_HEADERS
0143 HEADER_NAMES
0144 KColorUtils
0145 KColorCollection
0146 KColorMimeData
0147 KColorSchemeWatcher
0148
0149 RELATIVE colors
0150 REQUIRED_HEADERS KGuiAddons_HEADERS
0151 )
0152 ecm_generate_headers(KGuiAddons_HEADERS
0153 HEADER_NAMES
0154 KDateValidator
0155 KWordWrap
0156
0157 RELATIVE text
0158 REQUIRED_HEADERS KGuiAddons_HEADERS
0159 )
0160 ecm_generate_headers(KGuiAddons_HEADERS
0161 HEADER_NAMES
0162 KFontUtils
0163
0164 RELATIVE fonts
0165 REQUIRED_HEADERS KGuiAddons_HEADERS
0166 )
0167 ecm_generate_headers(KGuiAddons_HEADERS
0168 HEADER_NAMES
0169 KIconUtils
0170 KImageCache
0171 KModifierKeyInfo
0172 KCursorSaver
0173
0174 RELATIVE util
0175 REQUIRED_HEADERS KGuiAddons_HEADERS
0176 )
0177
0178 ecm_generate_headers(KGuiAddons_HEADERS
0179 HEADER_NAMES
0180 KeySequenceRecorder
0181
0182 RELATIVE recorder
0183 REQUIRED_HEADERS KGuiAddons_HEADERS
0184 )
0185
0186 #add_subdirectory(systemclipboard)
0187
0188 ecm_generate_headers(KGuiAddons_HEADERS
0189 HEADER_NAMES
0190 KSystemClipboard
0191
0192 RELATIVE systemclipboard
0193 REQUIRED_HEADERS KGuiAddons_HEADERS
0194 )
0195
0196 install(TARGETS KF5GuiAddons EXPORT KF5GuiAddonsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0197 install(FILES
0198 ${CMAKE_CURRENT_BINARY_DIR}/kguiaddons_export.h
0199 util/kmodifierkeyinfoprovider_p.h
0200 util/klocalimagecacheimpl.h # implementation detail, no forwarding header
0201 ${KGuiAddons_HEADERS}
0202 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KGuiAddons COMPONENT Devel
0203 )
0204
0205 if(BUILD_QCH)
0206 ecm_add_qch(
0207 KF5GuiAddons_QCH
0208 NAME KGuiAddons
0209 BASE_NAME KF5GuiAddons
0210 VERSION ${KF_VERSION}
0211 ORG_DOMAIN org.kde
0212 SOURCES # using only public headers, to cover only public API
0213 ${KGuiAddons_HEADERS}
0214 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0215 LINK_QCHS
0216 Qt5Gui_QCH
0217 INCLUDE_DIRS
0218 ${CMAKE_CURRENT_BINARY_DIR}
0219 ${kguiaddons_INCLUDES}
0220 BLANK_MACROS
0221 KGUIADDONS_EXPORT
0222 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0223 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0224 COMPONENT Devel
0225 )
0226 endif()
0227
0228 include(ECMGeneratePriFile)
0229 ecm_generate_pri_file(BASE_NAME KGuiAddons LIB_NAME KF5GuiAddons DEPS "gui" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF}/KGuiAddons)
0230 install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0231
0232 ecm_qt_install_logging_categories(
0233 EXPORT KGUIADDONS
0234 FILE kguiaddons.categories
0235 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
0236 )
0237
0238 if(BUILD_TESTING)
0239 add_executable(pasteclient systemclipboard/tests/paste.cpp)
0240
0241 target_link_libraries(pasteclient
0242 KF5GuiAddons
0243 )
0244 endif()
0245
0246 if (NOT ANDROID AND BUILD_GEO_SCHEME_HANDLER)
0247 add_subdirectory(geo-scheme-handler)
0248 endif()