blob: 10f41d86a2f71419e08e13a500ebb3454c9c3b0f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
cmake_minimum_required(VERSION 3.14)
project(KzXdg VERSION 1.0.0 LANGUAGES CXX)
include(GNUInstallDirs)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT DEFINED QML_MODULE_INSTALL_PATH)
if(DEFINED OE_QMAKE_PATH_QML)
set(QML_MODULE_INSTALL_PATH ${OE_QMAKE_PATH_QML} )
else()
set(QML_MODULE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/qt6/qml )
endif()
endif()
find_package(Qt6 COMPONENTS Core Quick Qml DBus REQUIRED)
set(PLUGIN_SOURCES
src/kzxdg_plugin.h src/kzxdg_plugin.cpp
qml/qmldir
)
include_directories(src/lib)
set(LIBRARY_SOURCES
src/lib/debug.cpp
src/lib/xdgbasedir.cpp
src/lib/xdgentry.cpp
src/lib/xdgentries.cpp
src/lib/xdgdesktopentries.cpp
src/lib/xdgdesktopfilter.cpp
src/lib/xdgautostart.cpp
src/lib/xdgnotificationserver.cpp
src/lib/xdgnotificationmessage.cpp
src/lib/xdgnotificationmanager.cpp
src/lib/xdgnotificationactions.cpp
src/lib/xdgnotifier.cpp
src/lib/xdgstatusnotifieritem.cpp
src/lib/xdgstatusnotifierhost.cpp
src/lib/xdgstatusnotifierwatcher.cpp
cmake/CPack.cmake
)
set(LIBRARY_HEADERS_PRIVATE
src/lib/debug.h
)
set(LIBRARY_HEADERS
src/lib/xdgbasedir.h
src/lib/xdgentry.h
src/lib/xdgentries.h
src/lib/xdgdesktopentries.h
src/lib/xdgdesktopfilter.h
src/lib/xdgautostart.h
src/lib/xdgnotificationserver.h
src/lib/xdgnotificationmessage.h
src/lib/xdgnotificationmanager.h
src/lib/xdgnotificationactions.h
src/lib/xdgnotifier.h
src/lib/xdgstatusnotifieritem.h
src/lib/xdgstatusnotifierhost.h
src/lib/xdgstatusnotifierwatcher.h
)
list(APPEND DBUS_IFACE_SRCS api/org.freedesktop.Notifications.xml)
qt_add_dbus_adaptor( DBUS_IFACE_SRCS api/org.freedesktop.Notifications.xml xdgnotificationserver.h XdgNotificationServer)
qt_add_dbus_interface( DBUS_IFACE_SRCS api/org.freedesktop.Notifications.xml NotificationsIface)
list(APPEND DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierItem.xml)
qt_add_dbus_adaptor( DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierItem.xml xdgstatusnotifieritem.h KaZoe::StatusNotifierItem)
qt_add_dbus_interface( DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierItem.xml XdgStatusNotifierItemIface)
list(APPEND DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierWatcher.xml)
qt_add_dbus_adaptor( DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierWatcher.xml xdgstatusnotifierwatcher.h KaZoe::StatusNotifierWatcher)
qt_add_dbus_interface( DBUS_IFACE_SRCS api/org.freedesktop.StatusNotifierWatcher.xml XdgStatusNotifierWatcherIface)
add_library(KzXdgPlugin SHARED ${PLUGIN_SOURCES})
add_library(KzXdg SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS} ${LIBRARY_HEADERS_PRIVATE} ${DBUS_IFACE_SRCS} cmake/Config.cmake.in)
set_target_properties(KzXdg PROPERTIES PUBLIC_HEADER "${LIBRARY_HEADERS}")
set_target_properties(KzXdg PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION 1)
target_compile_definitions(KzXdgPlugin
PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
)
target_link_libraries(KzXdgPlugin
PRIVATE
Qt6::Qml
KzXdg
)
target_link_libraries(KzXdg
PRIVATE
Qt6::Core
Qt6::Quick
Qt6::DBus
)
add_executable(test_xdg src/test/test_xdg.cpp)
target_link_libraries(test_xdg PRIVATE KzXdg Qt6::Core)
install(TARGETS KzXdgPlugin DESTINATION ${QML_MODULE_INSTALL_PATH}/org/kazoe/xdg)
install(FILES qml/qmldir DESTINATION ${QML_MODULE_INSTALL_PATH}/org/kazoe/xdg)
install(TARGETS KzXdg PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/KaZoe/Xdg/")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/notificationsadaptor.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/KaZoe/Xdg" RENAME xdgnotificationsadaptor.h)
# CMake Module
include(CMakePackageConfigHelpers)
set(CMakeModuleName "KzXdg")
configure_package_config_file(
cmake/Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${CMakeModuleName}Config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMakeModuleName}
)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/${CMakeModuleName}ConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion )
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMakeModuleName}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${CMakeModuleName}ConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMakeModuleName}
)
include(cmake/CPack.cmake)
|