3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-01-31 07:12:18 +00:00
Brooklyn/plasma/kcms/keyboard/CMakeLists.txt
2022-04-02 18:24:21 +05:00

151 lines
3.6 KiB
CMake

add_definitions(-DTRANSLATION_DOMAIN=\"kcmkeyboard\")
add_subdirectory(tastenbrett)
option(HAVE_XINPUT "X11 XInput" OFF)
option(HAVE_UDEV "UDev" OFF)
if (X11_Xinput_FOUND)
set(HAVE_XINPUT ON)
elseif (UDEV_FOUND)
set(HAVE_UDEV ON)
else()
message(STATUS "X11 XInput and UDev is not found, either is required to keep layouts with keyboard hotplugging")
endif()
### kded daemon ###
set( kded_keyboard_SRCS
${CMAKE_CURRENT_BINARY_DIR}/debug.cpp
keyboard_daemon.cpp
layout_memory.cpp
layout_memory_persister.cpp
udev_helper.cpp
x11_helper.cpp
xinput_helper.cpp
xkb_helper.cpp
keyboard_config.cpp
keyboard_hardware.cpp
bindings.cpp
flags.cpp
xkb_rules.cpp
layoutnames.cpp
)
kconfig_add_kcfg_files(kded_keyboard_SRCS keyboardsettings.kcfgc)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
kcoreaddons_add_plugin(kded_keyboard SOURCES ${kded_keyboard_SRCS} INSTALL_NAMESPACE "kf5/kded")
set_target_properties(kded_keyboard PROPERTIES OUTPUT_NAME keyboard)
target_link_libraries(kded_keyboard
Qt::Concurrent
Qt::Widgets
Qt::X11Extras
Qt::Xml
KF5::ConfigCore
KF5::CoreAddons
KF5::KCMUtils
KF5::DBusAddons
KF5::GlobalAccel
KF5::I18n
KF5::Notifications
KF5::WindowSystem
KF5::Plasma
KF5::XmlGui
KF5::GuiAddons
XCB::XCB
XCB::XKB
X11::X11
X11::xkbfile
)
if (HAVE_XINPUT)
target_link_libraries(kded_keyboard X11::Xi)
endif()
if (HAVE_UDEV)
target_link_libraries(kded_keyboard UDev::UDev)
endif()
### kcm keyboard ###
set(kcm_keyboard_PART_SRCS
kcm_keyboard.cpp
kcm_keyboard_widget.cpp
kcm_view_models.cpp
kcm_add_layout_dialog.cpp
keyboard_config.cpp
keyboardsettingsdata.cpp
x11_helper.cpp
xkb_helper.cpp
xkb_rules.cpp
flags.cpp
iso_codes.cpp
kcmmisc.cpp
bindings.cpp
tastenbrett.cpp)
install(FILES kcminputrc_repeat.upd
DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR})
install(PROGRAMS kcminputrc_migrate_repeat_value.py
DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR})
install(FILES kcminputrc_fix_botched_5_21_0.upd
DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR})
install(PROGRAMS kcminputrc_fix_botched_5_21_0.py
DESTINATION ${KDE_INSTALL_KCONFUPDATEDIR})
ecm_qt_declare_logging_category(kcm_keyboard_PART_SRCS
HEADER debug.h
IDENTIFIER KCM_KEYBOARD
CATEGORY_NAME org.kde.kcm_keyboard
DEFAULT_SEVERITY Warning
DESCRIPTION "KCM and KDED for keyboard layouts"
EXPORT kcm_keyboard)
ecm_qt_install_logging_categories(
EXPORT kcm_keyboard
DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
)
kconfig_add_kcfg_files(kcm_keyboard_PART_SRCS workspace_options.kcfgc keyboardsettings.kcfgc keyboardmiscsettings.kcfgc)
ki18n_wrap_ui(kcm_keyboard_PART_SRCS kcm_keyboard.ui kcm_add_layout_dialog.ui kcmmiscwidget.ui)
add_library(kcm_keyboard_static STATIC ${kcm_keyboard_PART_SRCS})
target_link_libraries(kcm_keyboard_static
Qt::Concurrent
Qt::Widgets
Qt::X11Extras
Qt::Xml
KF5::KCMUtils
KF5::GlobalAccel
KF5::I18n
KF5::WindowSystem
KF5::Plasma
KF5::XmlGui
KF5::GuiAddons
XCB::XCB
XCB::XKB
X11::X11
X11::xkbfile
)
kcoreaddons_add_plugin(kcm_keyboard SOURCES kcmmain.cpp INSTALL_NAMESPACE "plasma/kcms/systemsettings")
target_link_libraries(kcm_keyboard kcm_keyboard_static)
install( FILES kcm_keyboard.desktop DESTINATION ${KDE_INSTALL_APPDIR} )
add_subdirectory(kconf_update)
configure_file(config-keyboard.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-keyboard.h)
# Unit tests
if(BUILD_TESTING)
find_package(Qt5Test ${QT_MIN_VERSION} CONFIG REQUIRED)
add_subdirectory( tests )
endif()
add_dependencies(kcm_keyboard tastenbrett)