Files
RedBear-OS/local/recipes/kde/kf6-kguiaddons/source/src/CMakeLists.txt
T
2026-04-14 10:51:06 +01:00

249 lines
6.7 KiB
CMake

configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_library(KF6GuiAddons)
add_library(KF6::GuiAddons ALIAS KF6GuiAddons)
set_target_properties(KF6GuiAddons PROPERTIES
VERSION ${KGUIADDONS_VERSION}
SOVERSION ${KGUIADDONS_SOVERSION}
EXPORT_NAME GuiAddons
)
target_sources(KF6GuiAddons PRIVATE
colors/kcolorspaces.cpp
colors/kcolorutils.cpp
colors/kcolorcollection.cpp
colors/kcolormimedata.cpp
colors/kcolorschemewatcher.cpp
colors/kcolorschemewatcherbackend.cpp
colors/kcolorschemewatcher_qt.cpp
colors/kwindowinsetscontroller.cpp
text/kdatevalidator.cpp
text/kwordwrap.cpp
fonts/kfontutils.cpp
util/kiconutils.cpp
util/klocalimagecacheimpl.cpp
util/kmodifierkeyinfo.cpp
util/kmodifierkeyinfoprovider.cpp
util/kurlhandler_p.cpp
util/kcursorsaver.cpp
util/kcountryflagemojiiconengine.cpp
util/kjobwindows.cpp
recorder/keyboardgrabber.cpp
recorder/kkeysequencerecorder.cpp
systemclipboard/qtclipboard.cpp
systemclipboard/ksystemclipboard.cpp
colors/kcolorspaces_p.h
colors/kcolorutils.h
colors/kcolorcollection.h
colors/kcolormimedata.h
text/kdatevalidator.h
text/kwordwrap.h
fonts/kfontutils.h
util/kiconutils.h
util/klocalimagecacheimpl.h
util/kmodifierkeyinfo.h
util/kmodifierkeyinfoprovider_p.h
util/kurlhandler_p.h
util/kcursorsaver.h
util/kcountryflagemojiiconengine.h
util/kjobwindows.h
recorder/keyboardgrabber_p.h
recorder/kkeysequencerecorder.h
systemclipboard/qtclipboard_p.h
systemclipboard/ksystemclipboard.h
)
ecm_qt_declare_logging_category(KF6GuiAddons
HEADER kguiaddons_debug.h
IDENTIFIER KGUIADDONS_LOG
CATEGORY_NAME kf.guiaddons
DESCRIPTION "KGuiAddons"
EXPORT KGUIADDONS
)
if(WIN32)
target_sources(KF6GuiAddons PRIVATE colors/kcolorschemewatcher_win.cpp)
target_link_libraries(KF6GuiAddons PRIVATE advapi32)
endif()
if(APPLE)
find_library(APPKIT_LIBRARY AppKit)
target_sources(KF6GuiAddons PRIVATE colors/kcolorschemewatcher_mac.mm)
target_link_libraries(KF6GuiAddons PRIVATE ${APPKIT_LIBRARY})
endif()
if(WITH_DBUS)
target_sources(KF6GuiAddons PRIVATE colors/kcolorschemewatcher_xdg.cpp)
target_link_libraries(KF6GuiAddons PRIVATE Qt6::DBus)
endif()
if(WITH_WAYLAND)
if (Qt6_VERSION VERSION_GREATER_EQUAL "6.8.0")
set(private_code_option "PRIVATE_CODE")
endif()
qt_generate_wayland_protocol_client_sources(KF6GuiAddons
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/recorder/keyboard-shortcuts-inhibit-unstable-v1.xml"
"${CMAKE_CURRENT_SOURCE_DIR}/systemclipboard/wlr-data-control-unstable-v1.xml"
"${PLASMA_WAYLAND_PROTOCOLS_DIR}/keystate.xml"
"${Wayland_DATADIR}/wayland.xml"
${private_code_option}
)
target_sources(KF6GuiAddons PRIVATE
recorder/waylandinhibition.cpp
systemclipboard/waylandclipboard.cpp
util/kmodifierkeyinfoprovider_wayland.cpp
recorder/waylandinhibition_p.h
systemclipboard/waylandclipboard_p.h
util/kmodifierkeyinfoprovider_wayland.h
)
target_compile_definitions(KF6GuiAddons PRIVATE WITH_WAYLAND)
target_link_libraries(KF6GuiAddons PRIVATE Qt6::GuiPrivate Qt6::WaylandClient Wayland::Client)
endif()
if(WITH_X11)
target_sources(KF6GuiAddons PRIVATE util/kmodifierkeyinfoprovider_xcb.cpp util/kmodifierkeyinfoprovider_xcb.h)
target_link_libraries(KF6GuiAddons PRIVATE X11::Xkb XCB::XCB)
endif()
if(ANDROID)
add_subdirectory(android)
endif()
ecm_generate_export_header(KF6GuiAddons
BASE_NAME KGuiAddons
GROUP_BASE_NAME KF
VERSION ${KF_VERSION}
USE_VERSION_HEADER
DEPRECATED_BASE_VERSION 0
DEPRECATION_VERSIONS 6.3
)
set(kguiaddons_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/colors
${CMAKE_CURRENT_SOURCE_DIR}/fonts
${CMAKE_CURRENT_SOURCE_DIR}/text
${CMAKE_CURRENT_SOURCE_DIR}/util
${CMAKE_CURRENT_SOURCE_DIR}/recorder
${CMAKE_CURRENT_SOURCE_DIR}/systemclipboard
)
target_include_directories(KF6GuiAddons PUBLIC "$<BUILD_INTERFACE:${kguiaddons_INCLUDES}>")
target_include_directories(KF6GuiAddons INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KGuiAddons>" )
target_compile_definitions(KF6GuiAddons INTERFACE "$<INSTALL_INTERFACE:KGUIADDONS_LIB>")
target_link_libraries(KF6GuiAddons PUBLIC Qt6::Gui)
qt_extract_metatypes(KF6GuiAddons)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KColorUtils
KColorCollection
KColorMimeData
KColorSchemeWatcher
KWindowInsetsController
RELATIVE colors
REQUIRED_HEADERS KGuiAddons_HEADERS
)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KDateValidator
KWordWrap
RELATIVE text
REQUIRED_HEADERS KGuiAddons_HEADERS
)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KFontUtils
RELATIVE fonts
REQUIRED_HEADERS KGuiAddons_HEADERS
)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KIconUtils
KImageCache
KModifierKeyInfo
KCursorSaver
KCountryFlagEmojiIconEngine
KJobWindows
RELATIVE util
REQUIRED_HEADERS KGuiAddons_HEADERS
)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KKeySequenceRecorder
RELATIVE recorder
REQUIRED_HEADERS KGuiAddons_HEADERS
)
#add_subdirectory(systemclipboard)
ecm_generate_headers(KGuiAddons_HEADERS
HEADER_NAMES
KSystemClipboard
RELATIVE systemclipboard
REQUIRED_HEADERS KGuiAddons_HEADERS
)
install(TARGETS KF6GuiAddons EXPORT KF6GuiAddonsTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/kguiaddons_export.h
util/kmodifierkeyinfoprovider_p.h
util/klocalimagecacheimpl.h # implementation detail, no forwarding header
${KGuiAddons_HEADERS}
DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KGuiAddons COMPONENT Devel
)
if(BUILD_QCH)
ecm_add_qch(
KF6GuiAddons_QCH
NAME KGuiAddons
BASE_NAME KF6GuiAddons
VERSION ${KF_VERSION}
ORG_DOMAIN org.kde
SOURCES # using only public headers, to cover only public API
${KGuiAddons_HEADERS}
MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
LINK_QCHS
Qt6Gui_QCH
INCLUDE_DIRS
${CMAKE_CURRENT_BINARY_DIR}
${kguiaddons_INCLUDES}
BLANK_MACROS
KGUIADDONS_EXPORT
TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
COMPONENT Devel
)
endif()
ecm_qt_install_logging_categories(
EXPORT KGUIADDONS
FILE kguiaddons.categories
DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
)
if(BUILD_TESTING)
add_executable(pasteclient systemclipboard/tests/paste.cpp)
target_link_libraries(pasteclient
KF6GuiAddons
)
endif()
if (NOT ANDROID AND BUILD_GEO_SCHEME_HANDLER)
add_subdirectory(geo-scheme-handler)
endif()
if (TARGET Qt6::Qml)
add_subdirectory(qml)
endif()