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