nix: add debug package

Also use clangStdenv to build Use RelWithDebInfo for release builds
This commit is contained in:
Soramane 2025-08-31 10:43:49 +10:00
parent c72338655f
commit 49cabbd4cc
2 changed files with 12 additions and 4 deletions

View file

@ -31,6 +31,7 @@
packages = forAllSystems (pkgs: rec {
caelestia-shell = pkgs.callPackage ./nix {
rev = self.rev or self.dirtyRev;
stdenv = pkgs.clangStdenv;
quickshell = inputs.quickshell.packages.${pkgs.system}.default.override {
withX11 = false;
withI3 = false;
@ -39,6 +40,7 @@
caelestia-cli = inputs.caelestia-cli.packages.${pkgs.system}.default;
};
with-cli = caelestia-shell.override {withCli = true;};
debug = caelestia-shell.override {debug = true;};
default = caelestia-shell;
});

View file

@ -33,6 +33,7 @@
ninja,
pkg-config,
caelestia-cli,
debug ? false,
withCli ? false,
extraRuntimeDeps ? [],
}: let
@ -72,7 +73,7 @@
];
assets = stdenv.mkDerivation {
name = "caelestia-assets";
name = "caelestia-assets${lib.optionalString debug "-debug"}";
src = lib.fileset.toSource {
root = ./..;
fileset = lib.fileset.union ./../CMakeLists.txt ./../assets/cpp;
@ -90,7 +91,7 @@
};
plugin = stdenv.mkDerivation {
name = "caelestia-qml-plugin";
name = "caelestia-qml-plugin${lib.optionalString debug "-debug"}";
src = lib.fileset.toSource {
root = ./..;
fileset = lib.fileset.union ./../CMakeLists.txt ./../plugin;
@ -110,14 +111,17 @@
in
stdenv.mkDerivation {
inherit version;
pname = "caelestia-shell";
pname = "caelestia-shell${lib.optionalString debug "-debug"}";
src = ./..;
nativeBuildInputs = [cmake ninja makeWrapper qt6.wrapQtAppsHook];
buildInputs = [quickshell assets plugin xkeyboard-config qt6.qtbase];
propagatedBuildInputs = runtimeDeps;
cmakeBuildType = "Release";
cmakeBuildType =
if debug
then "Debug"
else "RelWithDebInfo";
cmakeFlags =
[
(lib.cmakeFeature "ENABLE_MODULES" "shell")
@ -125,6 +129,8 @@ in
]
++ cmakeVersionFlags;
dontStrip = debug;
prePatch = ''
substituteInPlace assets/pam.d/fprint \
--replace-fail pam_fprintd.so /run/current-system/sw/lib/security/pam_fprintd.so