Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,248 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user