about summary refs log tree commit diff
path: root/third_party/lisp/str.nix
blob: 556f9cc30709bdae1f6ad5d17a01a613ae7e4074 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{ 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)
    '';
  };
}