Change-Id: If6ffd9a2344dc98e95312ddcce14ba5c2519d004 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1420 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			1.7 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
 | 
						|
      (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"
 | 
						|
  ];
 | 
						|
}
 |