summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorFabien Proriol <fabien.proriol@kazoe.org>2025-05-25 17:58:09 +0200
committerFabien Proriol <fabien.proriol@kazoe.org>2025-05-26 18:01:49 +0200
commit49daa163530ceabc9eaa8911ab96b5f799cfb552 (patch)
tree080d0b31eafd138cd8d47d5c2a52b75d3cfa6f28 /CMakeLists.txt
Initial Commit
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt67
1 files changed, 67 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c388041
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,67 @@
+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/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/)