50 lines
1 KiB
Nix
50 lines
1 KiB
Nix
|
{ depot, pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
inherit (depot.nix) buildLisp;
|
||
|
src = with pkgs; srcOnly lispPackages.str;
|
||
|
in
|
||
|
buildLisp.library {
|
||
|
name = "str";
|
||
|
|
||
|
deps = with depot.third_party.lisp; [
|
||
|
{
|
||
|
sbcl = buildLisp.bundled "uiop";
|
||
|
default = buildLisp.bundled "asdf";
|
||
|
}
|
||
|
cl-ppcre
|
||
|
cl-ppcre.unicode
|
||
|
cl-change-case
|
||
|
];
|
||
|
|
||
|
srcs = [
|
||
|
(pkgs.runCommand "str.lisp" { } ''
|
||
|
substitute ${src}/str.lisp $out \
|
||
|
--replace-fail \
|
||
|
'(asdf:component-version (asdf:find-system "str"))' \
|
||
|
'"${pkgs.lispPackages.str.meta.version}"'
|
||
|
'')
|
||
|
];
|
||
|
|
||
|
brokenOn = [
|
||
|
"ccl" # In REPLACE-USING: Shouldn't assign to variable I
|
||
|
];
|
||
|
|
||
|
tests = {
|
||
|
name = "str-test";
|
||
|
srcs = [ (src + "/test/test-str.lisp") ];
|
||
|
deps = [
|
||
|
{
|
||
|
sbcl = depot.nix.buildLisp.bundled "uiop";
|
||
|
default = depot.nix.buildLisp.bundled "asdf";
|
||
|
}
|
||
|
depot.third_party.lisp.prove
|
||
|
depot.third_party.lisp.fiveam
|
||
|
];
|
||
|
|
||
|
expression = ''
|
||
|
(fiveam:run! 'str::test-str)
|
||
|
'';
|
||
|
};
|
||
|
}
|