From 11bc8d04643ea696fa9b4efd76cbbca79b8ed29d Mon Sep 17 00:00:00 2001 From: Soramane <61896496+soramanew@users.noreply.github.com> Date: Fri, 29 Aug 2025 19:41:26 +1000 Subject: cmake: better modules enable/disable --- CMakeLists.txt | 7 ++++--- nix/default.nix | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 14f498b..7050078 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,21 +33,22 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(DISTRIBUTOR "Unset" CACHE STRING "Distributor") +set(ENABLE_MODULES "assets;plugin;shell" CACHE STRING "Modules to build/install") 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) -if(NOT DONT_BUILD_ASSETS AND NOT PLUGIN_ONLY AND NOT SHELL_ONLY) +if("assets" IN_LIST ENABLE_MODULES) add_subdirectory(assets/cpp) endif() -if(NOT DONT_BUILD_PLUGIN AND NOT ASSETS_ONLY AND NOT SHELL_ONLY) +if("plugin" IN_LIST ENABLE_MODULES) add_subdirectory(plugin) endif() -if(NOT DONT_BUILD_SHELL AND NOT ASSETS_ONLY AND NOT PLUGIN_ONLY) +if("shell" IN_LIST ENABLE_MODULES) foreach(dir assets components config modules services utils) install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}") endforeach() diff --git a/nix/default.nix b/nix/default.nix index c32aa87..0c4b3b2 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -83,7 +83,7 @@ cmakeFlags = [ - (lib.cmakeBool "ASSETS_ONLY" true) + (lib.cmakeFeature "ENABLE_MODULES" "assets") (lib.cmakeFeature "INSTALL_LIBDIR" "${placeholder "out"}/lib") ] ++ cmakeVersionFlags; @@ -102,7 +102,7 @@ dontWrapQtApps = true; cmakeFlags = [ - (lib.cmakeBool "PLUGIN_ONLY" true) + (lib.cmakeFeature "ENABLE_MODULES" "plugin") (lib.cmakeFeature "INSTALL_QMLDIR" qt6.qtbase.qtQmlPrefix) ] ++ cmakeVersionFlags; @@ -120,7 +120,7 @@ in cmakeBuildType = "Release"; cmakeFlags = [ - (lib.cmakeBool "SHELL_ONLY" true) + (lib.cmakeFeature "ENABLE_MODULES" "shell") (lib.cmakeFeature "INSTALL_QSCONFDIR" "${placeholder "out"}/share/caelestia-shell") ] ++ cmakeVersionFlags; -- cgit v1.2.3-freya