rshell/nix/devshell/flake-module.nix
Daniel Bulant 6d20c34291
nix things
2025-01-10 22:57:03 +01:00

77 lines
1.9 KiB
Nix

{ inputs, lib, ... }: {
imports = [
inputs.devshell.flakeModule
];
config.perSystem =
{ pkgs
, ...
}: let
packages = with pkgs; [
libxkbcommon
libGL
dbus
wayland
openssl
libclang
glib
# data gathering
pipewire.dev
networkmanager
];
in {
config.devshells.default = {
imports = [
"${inputs.devshell}/extra/language/c.nix"
# "${inputs.devshell}/extra/language/rust.nix"
];
devshell = {
name = "rshell devshell";
packages = packages ++ (with pkgs;[ pkg-config rustPlatform.bindgenHook rust-cbindgen autoAddDriverRunpath clang ]);
packagesFrom = with pkgs; [libclang clang libclang.lib];
};
env = [{
name = "LD_LIBRARY_PATH";
value = lib.makeLibraryPath packages;
} {
name = "LDFLAGS";
eval = "-L$DEVSHELL_DIR/lib";
} {
name = "C_INCLUDE_PATH";
prefix = "$DEVSHELL_DIR/include";
} {
name = "PKG_CONFIG_PATH";
value = lib.concatStringsSep ":"
( map
( pkg: "${pkg.dev}/lib/pkgconfig" )
( packages )
);
#"${pkgs.openssl.dev}/lib/pkgconfig";
} {
name = "LIBCLANG_PATH";
value = "${pkgs.libclang.lib}/lib";
} {
# some *-sys crates require additional includes
name = "CFLAGS";
# append in case it needs to be modified
eval = "\"-I $DEVSHELL_DIR/include ${lib.optionalString pkgs.stdenv.isDarwin "-iframework $DEVSHELL_DIR/Library/Frameworks"}\"";
}];
commands = with pkgs; [
{ package = rust-toolchain; category = "rust"; }
];
language.c = {
libraries =
packages ++
(lib.optional pkgs.stdenv.isDarwin pkgs.libiconv);
};
};
};
}