Warning, /utilities/kclock/src/kclockd/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 #
0002 # Copyright 2020 Han Young <hanyoung@protonmail.com>
0003 # Copyright 2020 Devin Lin <espidev@gmail.com>
0004 #
0005 # SPDX-License-Identifier: GPL-2.0-or-later
0006 #
0007 
0008 set(kclockd_SRCS
0009     utilities.cpp
0010     utilities.h
0011     alarm.cpp
0012     alarm.h
0013     alarmmodel.cpp
0014     alarmmodel.h
0015     alarmwaitworker.cpp
0016     alarmwaitworker.h
0017     alarmplayer.cpp
0018     alarmplayer.h
0019     timermodel.cpp
0020     timermodel.h
0021     timer.cpp
0022     timer.h
0023     xdgportal.cpp
0024     xdgportal.h
0025     )
0026 # generate KConfig class from xml
0027 kconfig_add_kcfg_files(kclockd_SRCS kclockdsettings.kcfgc GENERATE_MOC)
0028 
0029 # use generated KConfig header file to generate DBus adaptor xml
0030 set(kclockd_SRCS
0031     ${kclockd_SRCS}
0032     ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.KClockSettings.xml
0033 )
0034 
0035 qt_generate_dbus_interface(
0036     ${CMAKE_CURRENT_BINARY_DIR}/kclockdsettings.h
0037     org.kde.kclockd.KClockSettings.xml
0038     OPTIONS -S -P
0039 )
0040 qt_generate_dbus_interface(
0041     ${CMAKE_CURRENT_SOURCE_DIR}/alarm.h
0042     org.kde.kclockd.Alarm.xml
0043     OPTIONS -s -m -P
0044 )
0045 qt_generate_dbus_interface(
0046     ${CMAKE_CURRENT_SOURCE_DIR}/alarmmodel.h
0047     org.kde.kclockd.AlarmModel.xml
0048     OPTIONS -s -m
0049 )
0050 qt_generate_dbus_interface(
0051     ${CMAKE_CURRENT_SOURCE_DIR}/timermodel.h
0052     org.kde.kclockd.TimerModel.xml
0053     OPTIONS -s -m -p
0054 )
0055 
0056 qt_generate_dbus_interface(
0057     ${CMAKE_CURRENT_SOURCE_DIR}/timer.h
0058     org.kde.kclockd.Timer.xml
0059     OPTIONS -s -m -P
0060 )
0061 
0062 qt_generate_dbus_interface(
0063     ${CMAKE_CURRENT_SOURCE_DIR}/utilities.h
0064     org.kde.kclockd.Utility.xml
0065     OPTIONS -s -m -P
0066 )
0067 # use generated DBus adapator xml to generate adaptor source code
0068 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.KClockSettings.xml
0069                      ${CMAKE_CURRENT_BINARY_DIR}/kclockdsettings.h KClockSettings)
0070 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Alarm.xml
0071                      ${CMAKE_CURRENT_SOURCE_DIR}/alarm.h Alarm)
0072 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.AlarmModel.xml
0073                      ${CMAKE_CURRENT_SOURCE_DIR}/alarmmodel.h AlarmModel)
0074 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.TimerModel.xml
0075                      ${CMAKE_CURRENT_SOURCE_DIR}/timermodel.h TimerModel)
0076 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Timer.xml
0077                      ${CMAKE_CURRENT_SOURCE_DIR}/timer.h Timer)
0078 qt_add_dbus_adaptor(kclockd_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Utility.xml
0079                      ${CMAKE_CURRENT_SOURCE_DIR}/utilities.h Utilities)
0080 
0081 qt_add_dbus_interface(kclockd_SRCS systeminterfaces/org.mpris.MediaPlayer2.Player.xml generated/systeminterfaces/mprisplayer)
0082 
0083 # install DBus interface xml to dbus interface directory
0084 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.KClockSettings.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0085 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Alarm.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0086 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.AlarmModel.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0087 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.TimerModel.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0088 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Timer.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0089 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kclockd.Utility.xml DESTINATION ${KDE_INSTALL_DBUSINTERFACEDIR})
0090 
0091 add_executable(kclockd main.cpp ${kclockd_SRCS} )
0092 target_link_libraries(kclockd PRIVATE
0093     Qt6::Multimedia
0094     Qt6::Widgets
0095     KF6::I18n
0096     KF6::ConfigCore
0097     KF6::ConfigGui
0098     KF6::CoreAddons
0099     KF6::Notifications
0100     KF6::DBusAddons
0101     KF6::StatusNotifierItem
0102 )
0103 
0104 target_include_directories(kclockd PRIVATE ${CMAKE_BINARY_DIR})
0105 install(TARGETS kclockd ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})