summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 4f697b17e04183fa7e4ce907d409885461d423a6 (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
cmake_minimum_required(VERSION 3.16)

project(KzDesktop VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 COMPONENTS Quick DBus WaylandCompositor REQUIRED)

qt_standard_project_setup(REQUIRES 6.5)

find_package(KzXdg REQUIRED)
include_directories(${KZXDG_INCLUDE_DIR})

set(DBUS_APIS
    api/org.kazoe.desktop.applications.xml
)

set(PROJECT_QMLS
    qml/Main.qml
    qml/HomePage.qml
    qml/DesktopGridView.qml
    qml/StatusBar.qml
    qml/SystrayView.qml
    qml/Systray.qml
    qml/VKeyboard.qml
)

set(PROJECT_SOURCES
    src/main.cpp
    src/applicationmanager.h src/applicationmanager.cpp
    src/waylandentries.h src/waylandentries.cpp
    src/waylandentriesfiltered.h src/waylandentriesfiltered.cpp
    src/debug.cpp src/debug.h
)

set(OTHER_FILES
    conf/kzdesktop.sh
    conf/kzdesktop.service
    ${WAYLAND_PROTOCOLS}
    ${DBUS_APIS}
)

set(CLI_SOURCES
    tools/cli/main.cpp
)

qt_add_dbus_adaptor(ApplicationManager_SRCS api/org.kazoe.desktop.applications.xml src/applicationmanager.h ApplicationManager)
qt_add_dbus_interface(ApplicationManagerIface_SRCS api/org.kazoe.desktop.applications.xml ApplicationManagerIface)
qt_add_executable(kzdesktop ${PROJECT_SOURCES} ${PROJECT_QMLS}  ${OTHER_FILES} ${ApplicationManager_SRCS} ${APPMANAGER_SRCS})
qt_add_executable(desktopcli ${CLI_SOURCES} ${ApplicationManagerIface_SRCS} ${DBUS_APIS})
qt_add_qml_module(kzdesktop URI org.kazoe.desktop VERSION 1.0 QML_FILES ${PROJECT_QMLS} )

target_compile_definitions(kzdesktop PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
target_link_libraries(kzdesktop PRIVATE ${KZXDG_LIBRARIES} Qt6::Quick Qt6::DBus Qt6::WaylandCompositor systemd )
target_link_libraries(desktopcli PRIVATE Qt6::Core Qt6::DBus)


include(GNUInstallDirs)
install(TARGETS kzdesktop       DESTINATION ${CMAKE_INSTALL_BIN})
install(TARGETS desktopcli      DESTINATION ${CMAKE_INSTALL_BIN})
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/conf/kzdesktop.service         DESTINATION /usr/lib/systemd/user)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/conf/kzdesktop.sh              DESTINATION /etc/profile.d/)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/conf/kzdesktop.conf            DESTINATION /etc/system.conf.d/)
install(FILES ${DBUS_APIS}                                               DESTINATION /usr/share/dbus-1/interfaces/)