cmake: better modules enable/disable

This commit is contained in:
Soramane 2025-08-29 19:41:26 +10:00
parent be5748dff3
commit 11bc8d0464
2 changed files with 7 additions and 6 deletions

View file

@ -33,21 +33,22 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(DISTRIBUTOR "Unset" CACHE STRING "Distributor") 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_LIBDIR "usr/lib/caelestia" CACHE STRING "Library install dir")
set(INSTALL_QMLDIR "usr/lib/qt6/qml" CACHE STRING "QML 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") set(INSTALL_QSCONFDIR "etc/xdg/quickshell/caelestia" CACHE STRING "Quickshell config install dir")
add_compile_options(-Wall -Wextra) 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) add_subdirectory(assets/cpp)
endif() endif()
if(NOT DONT_BUILD_PLUGIN AND NOT ASSETS_ONLY AND NOT SHELL_ONLY) if("plugin" IN_LIST ENABLE_MODULES)
add_subdirectory(plugin) add_subdirectory(plugin)
endif() 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) foreach(dir assets components config modules services utils)
install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}") install(DIRECTORY ${dir} DESTINATION "${INSTALL_QSCONFDIR}")
endforeach() endforeach()

View file

@ -83,7 +83,7 @@
cmakeFlags = cmakeFlags =
[ [
(lib.cmakeBool "ASSETS_ONLY" true) (lib.cmakeFeature "ENABLE_MODULES" "assets")
(lib.cmakeFeature "INSTALL_LIBDIR" "${placeholder "out"}/lib") (lib.cmakeFeature "INSTALL_LIBDIR" "${placeholder "out"}/lib")
] ]
++ cmakeVersionFlags; ++ cmakeVersionFlags;
@ -102,7 +102,7 @@
dontWrapQtApps = true; dontWrapQtApps = true;
cmakeFlags = cmakeFlags =
[ [
(lib.cmakeBool "PLUGIN_ONLY" true) (lib.cmakeFeature "ENABLE_MODULES" "plugin")
(lib.cmakeFeature "INSTALL_QMLDIR" qt6.qtbase.qtQmlPrefix) (lib.cmakeFeature "INSTALL_QMLDIR" qt6.qtbase.qtQmlPrefix)
] ]
++ cmakeVersionFlags; ++ cmakeVersionFlags;
@ -120,7 +120,7 @@ in
cmakeBuildType = "Release"; cmakeBuildType = "Release";
cmakeFlags = cmakeFlags =
[ [
(lib.cmakeBool "SHELL_ONLY" true) (lib.cmakeFeature "ENABLE_MODULES" "shell")
(lib.cmakeFeature "INSTALL_QSCONFDIR" "${placeholder "out"}/share/caelestia-shell") (lib.cmakeFeature "INSTALL_QSCONFDIR" "${placeholder "out"}/share/caelestia-shell")
] ]
++ cmakeVersionFlags; ++ cmakeVersionFlags;