tvl-depot/third_party/lisp/cl-unicode.nix
Vincent Ambo aa122cbae7 style: format entire depot with nixpkgs-fmt
This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
2022-01-31 16:11:53 +00:00

80 lines
1.8 KiB
Nix

{ depot, pkgs, ... }:
let
inherit (pkgs) sbcl runCommand writeText;
inherit (depot.nix.buildLisp) bundled;
src = pkgs.fetchFromGitHub {
owner = "edicl";
repo = "cl-unicode";
rev = "8073fc5634c9d4802888ac03abf11dfe383e16fa";
sha256 = "0ykx2s9lqfl74p1px0ik3l2izd1fc9jd1b4ra68s5x34rvjy0hza";
};
cl-unicode-base = depot.nix.buildLisp.library {
name = "cl-unicode-base";
deps = with depot.third_party.lisp; [
cl-ppcre
];
srcs = map (f: src + ("/" + f)) [
"packages.lisp"
"specials.lisp"
"util.lisp"
];
};
cl-unicode-build = depot.nix.buildLisp.program {
name = "cl-unicode-build";
deps = with depot.third_party.lisp; [
cl-unicode-base
flexi-streams
{
ecl = bundled "asdf";
default = bundled "uiop";
}
];
srcs = (map (f: src + ("/build/" + f)) [
"util.lisp"
"char-info.lisp"
"read.lisp"
]) ++ [
(runCommand "dump.lisp" { } ''
substitute ${src}/build/dump.lisp $out \
--replace ':defaults *this-file*' ":defaults (uiop:getcwd)"
'')
(writeText "export-create-source-files.lisp" ''
(in-package :cl-unicode)
(export 'create-source-files)
'')
];
main = "cl-unicode:create-source-files";
};
generated = runCommand "cl-unicode-generated" { } ''
mkdir -p $out/build
mkdir -p $out/test
cd $out/build
pwd
${cl-unicode-build}/bin/cl-unicode-build
'';
in
depot.nix.buildLisp.library {
name = "cl-unicode";
deps = [ cl-unicode-base ];
srcs = [
"${src}/conditions.lisp"
"${generated}/lists.lisp"
"${generated}/hash-tables.lisp"
"${src}/api.lisp"
"${generated}/methods.lisp"
"${src}/test-functions.lisp"
"${src}/derived.lisp"
"${src}/alias.lisp"
];
}