diff --git a/shell-modules/default.nix b/shell-modules/default.nix index 99acc3f..0b65f7f 100644 --- a/shell-modules/default.nix +++ b/shell-modules/default.nix @@ -32,9 +32,12 @@ in }; }).config; recUpdate = nixpkgs.lib.recursiveUpdate; + libPackages = evaluated.libPackages pkgs; shell = recUpdate { - env = evaluated.env; - packages = evaluated.packages ++ (evaluated.extraPackages pkgs); + env = evaluated.env // { + LD_LIBRARY_PATH = (nixpkgs.lib.mkIf (libPackages != [ ]) (nixpkgs.lib.makeLibraryPath libPackages)); + }; + packages = evaluated.packages ++ (evaluated.extraPackages pkgs) ++ libPackages; } evaluated.override; in { diff --git a/shell-modules/shell.nix b/shell-modules/shell.nix index 5d3d1f6..27981b7 100644 --- a/shell-modules/shell.nix +++ b/shell-modules/shell.nix @@ -24,6 +24,16 @@ with lib; description = "Extra packages to install"; }; + libPackages = mkOption { + type = types.functionTo (types.listOf types.package) // { + merge = + loc: defs: p: + lib.concatMap (def: (def.value p)) defs; + }; + default = p: [ ]; + description = "Packages to install and add to library path"; + }; + override = mkOption { type = types.attrs; default = { };