clwrapper, buildLispPackage: compile fasls and store them for all systems

This commit is contained in:
Michael Raskin
2017-03-31 22:46:49 +02:00
parent 5793e12143
commit 1e7bad5d51
135 changed files with 29 additions and 533 deletions
@@ -1,15 +1,17 @@
args @ {stdenv, clwrapper, baseName, version ? "latest", src, description, deps,
buildInputs ? [], meta ? {}, overrides?(x: {}), propagatedBuildInputs ? []}:
args @ {stdenv, clwrapper, baseName, testSystem ? baseName, version ? "latest"
, src, description, deps, buildInputs ? [], meta ? {}, overrides?(x: {})
, propagatedBuildInputs ? []}:
let
deployConfigScript = ''
config_script="$out"/lib/common-lisp-settings/${args.baseName}-shell-config.sh
mkdir -p "$(dirname "$config_script")"
touch "$config_script"
chmod a+x "$config_script"
echo "export NIX_CFLAGS_COMPILE='$NIX_CFLAGS_COMPILE'\"\''${NIX_CFLAGS_COMPILE:+ $NIX_CFLAGS_COMPILE}\"" >> "$config_script"
echo "export NIX_CFLAGS_COMPILE='$NIX_CFLAGS_COMPILE'\"\''${NIX_CFLAGS_COMPILE:+ \$NIX_CFLAGS_COMPILE}\"" >> "$config_script"
echo "export NIX_LISP_COMMAND='$NIX_LISP_COMMAND'" >> "$config_script"
echo "export NIX_LISP_ASDF='$NIX_LISP_ASDF'" >> "$config_script"
echo "export CL_SOURCE_REGISTRY="\$CL_SOURCE_REGISTRY\''${CL_SOURCE_REGISTRY:+:}"'$CL_SOURCE_REGISTRY:$out/lib/common-lisp/${args.baseName}/'" >> "$config_script"
echo "export ASDF_OUTPUT_TRANSLATIONS="\$ASDF_OUTPUT_TRANSLATIONS\''${ASDF_OUTPUT_TRANSLATIONS:+:}"'$out/lib/common-lisp/${args.baseName}/:$out/lib/common-lisp-compiled/${args.baseName}:$ASDF_OUTPUT_TRANSLATIONS'" >> "$config_script"
test -n "$LD_LIBRARY_PATH" &&
echo "export LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}\"'$LD_LIBRARY_PATH'" >> "$config_script"
test -n "$NIX_LISP_LD_LIBRARY_PATH" &&
@@ -41,9 +43,14 @@ basePackage = {
${deployConfigScript}
${deployLaunchScript}
${if testSystem != null then ''
NIX_LISP_PRELAUNCH_HOOK='nix_lisp_run_single_form "(asdf:load-system :${testSystem})"' \
"$out/bin/${args.baseName}-lisp-launcher.sh" ""
'' else ""}
eval "$postInstall"
'';
propagatedBuildInputs = (args.deps or []) ++ [clwrapper clwrapper.lisp]
propagatedBuildInputs = (args.deps or []) ++ [clwrapper clwrapper.lisp clwrapper.asdf]
++ (args.propagatedBuildInputs or []);
buildInputs = buildInputs;
dontStrip=true;