nix: fix package and add devshell

This commit is contained in:
outfoxxed 2024-10-13 16:09:37 -07:00 committed by Mihai Fufezan
parent 00beba904f
commit 707a315cd8
4 changed files with 45 additions and 20 deletions

5
.gitignore vendored
View File

@ -34,5 +34,10 @@
.vscode/
.cache/
build/
/result
# direnv
/.direnv
/.envrc
compile_commands.json

View File

@ -36,14 +36,9 @@
});
devShells = eachSystem (system: {
default = pkgsFor.${system}.mkShell {
inputsFrom = [self.packages.${system}.hyprsysteminfo];
shellHook = ''
# Generate compile_commands.json
CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake -S . -B ./build
ln -s build/compile_commands.json .
'';
default = import ./nix/shell.nix {
pkgs = pkgsFor.${system};
inherit (pkgsFor.${system}) hyprsysteminfo;
};
});
};

View File

@ -1,28 +1,23 @@
{
lib,
nix-gitignore,
stdenv,
cmake,
kdePackages,
pciutils,
qt6,
pkg-config,
hyprutils,
pciutils,
kdePackages,
version ? "0",
}: let
inherit (lib.sources) cleanSource cleanSourceWith;
inherit (lib.strings) hasSuffix makeBinPath;
inherit (lib.strings) makeBinPath;
in
stdenv.mkDerivation {
pname = "hyprsysteminfo";
inherit version;
src = cleanSourceWith {
filter = name: _type: let
baseName = baseNameOf (toString name);
in
! (hasSuffix ".nix" baseName);
src = cleanSource ../.;
};
src = nix-gitignore.gitignoreSource [] ./..;
nativeBuildInputs = [
cmake
@ -31,11 +26,13 @@ in
];
buildInputs = [
kdePackages.kirigami-addons
qt6.qtbase
qt6.qtdeclarative
qt6.qtsvg
qt6.qtwayland
hyprutils
kdePackages.qqc2-desktop-style
kdePackages.kirigami
];
preFixup = ''

28
nix/shell.nix Normal file
View File

@ -0,0 +1,28 @@
{
pkgs ? import <nixpkgs> {},
hyprsysteminfo ? pkgs.callPackage ./default.nix {},
...
}: pkgs.mkShell {
inputsFrom = [ hyprsysteminfo ];
nativeBuildInputs = [ pkgs.clang-tools pkgs.pciutils ];
shellHook = let
inherit (pkgs.lib.strings) concatMapStringsSep;
qtLibPath = f: concatMapStringsSep ":" f (with pkgs.qt6; [
qtbase
qtdeclarative
qtwayland
pkgs.kdePackages.qqc2-desktop-style
# see https://github.com/NixOS/nixpkgs/blob/e186dd1a34be7a76c6e2c038ab4b759faec32d5d/pkgs/kde/frameworks/kirigami/default.nix#L9-L11
pkgs.kdePackages.kirigami.unwrapped
]);
in ''
# Add Qt-related environment variables.
export QT_PLUGIN_PATH=${qtLibPath (p: "${p}/lib/qt-6/plugins")}
export QML2_IMPORT_PATH=${qtLibPath (p: "${p}/lib/qt-6/qml")}
# Generate compile_commands.json
CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake -S . -B ./build
ln -s build/compile_commands.json .
'';
}