summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt18
-rw-r--r--assets/cpp/CMakeLists.txt9
-rw-r--r--plugin/CMakeLists.txt10
3 files changed, 27 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..84f909d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,18 @@
+cmake_minimum_required(VERSION 3.19)
+project(caelestia-shell VERSION "0.0.1")
+
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(INSTALL_LIBDIR "/usr/lib/caelestia" CACHE STRING "Library install dir")
+set(INSTALL_QMLDIR "/usr/lib/qt6/qml" CACHE STRING "QML install dir")
+set(INSTALL_QSCONFDIR "/etc/xdg/quickshell/caelestia" CACHE STRING "Quickshell config install dir")
+
+add_compile_options(-Wall -Wextra)
+
+add_subdirectory(assets/cpp)
+add_subdirectory(plugin)
+
+foreach(dir assets components config modules services utils)
+ install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}")
+endforeach()
+install(FILES shell.qml LICENSE DESTINATION "${INSTALL_QSCONFDIR}")
diff --git a/assets/cpp/CMakeLists.txt b/assets/cpp/CMakeLists.txt
new file mode 100644
index 0000000..a836850
--- /dev/null
+++ b/assets/cpp/CMakeLists.txt
@@ -0,0 +1,9 @@
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(PIPEWIRE REQUIRED libpipewire-0.3)
+pkg_check_modules(AUBIO REQUIRED aubio)
+
+# Beat detector
+add_executable(beat_detector beat-detector.cpp)
+target_include_directories(beat_detector PRIVATE ${PIPEWIRE_INCLUDE_DIRS} ${AUBIO_INCLUDE_DIRS})
+target_link_libraries(beat_detector PRIVATE ${PIPEWIRE_LIBRARIES} ${AUBIO_LIBRARIES})
+install(TARGETS beat_detector DESTINATION ${INSTALL_LIBDIR})
diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt
index 29612d8..a493c32 100644
--- a/plugin/CMakeLists.txt
+++ b/plugin/CMakeLists.txt
@@ -1,19 +1,9 @@
-cmake_minimum_required(VERSION 3.19)
-project(Caelestia VERSION "0.0.1")
-
-set(QT_MIN_VERSION "6.9.0")
-set(CMAKE_CXX_STANDARD 20)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-add_compile_options(-Wall -Wextra)
-
find_package(Qt6 REQUIRED COMPONENTS Core Qml)
if(QT_KNOWN_POLICY_QTP0001)
qt_policy(SET QTP0001 NEW)
endif()
-set(INSTALL_QMLDIR "" CACHE STRING "QML install dir")
set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml")
qt_standard_project_setup()
add_subdirectory(src/Caelestia)