fix(nix/buildLisp): Don't load binaries in sbclWith
Adds an attribute on each Lisp derivation that specifies whether it is a binary or not. This attribute is then filtered for in sbclWith.
This commit is contained in:
parent
e1cc4966b7
commit
21e9a65a35
1 changed files with 11 additions and 3 deletions
|
@ -8,7 +8,7 @@
|
|||
, ... }:
|
||||
|
||||
let
|
||||
inherit (builtins) map elemAt match;
|
||||
inherit (builtins) map elemAt match filter;
|
||||
inherit (pkgs.third_party) lib runCommandNoCC makeWrapper writeText writeShellScriptBin sbcl;
|
||||
|
||||
#
|
||||
|
@ -130,6 +130,7 @@ let
|
|||
'' // {
|
||||
inherit lispNativeDeps lispDeps;
|
||||
lispName = name;
|
||||
lispBinary = false;
|
||||
};
|
||||
|
||||
# 'program' creates an executable containing a dumped image of the
|
||||
|
@ -153,11 +154,18 @@ let
|
|||
}
|
||||
|
||||
wrapProgram $out/bin/${name} --prefix LD_LIBRARY_PATH : "${libPath}"
|
||||
'' // { lispName = name; lispDeps = [ selfLib ]; lispNativeDeps = []; };
|
||||
'' // {
|
||||
lispName = name;
|
||||
lispDeps = [ selfLib ];
|
||||
lispNativeDeps = native;
|
||||
lispBinary = true;
|
||||
};
|
||||
|
||||
# 'sbclWith' creates an image with the specified libraries /
|
||||
# programs loaded.
|
||||
sbclWith = deps: let lispDeps = allDeps deps; in writeShellScriptBin "sbcl" ''
|
||||
sbclWith = deps:
|
||||
let lispDeps = filter (d: !d.lispBinary) (allDeps deps);
|
||||
in writeShellScriptBin "sbcl" ''
|
||||
export LD_LIBRARY_PATH=${lib.makeLibraryPath (allNative [] lispDeps)};
|
||||
exec ${sbcl}/bin/sbcl ${
|
||||
if deps == [] then ""
|
||||
|
|
Loading…
Reference in a new issue