-
Notifications
You must be signed in to change notification settings - Fork 1
/
aoc.asd
96 lines (90 loc) · 3.41 KB
/
aoc.asd
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(pushnew (merge-pathnames (parse-namestring "vendor/cl-classified/")
*default-pathname-defaults*)
asdf:*central-registry*)
(defclass auto-module (module)
((file-cache :initform (make-hash-table))))
(defmethod component-children ((self auto-module)
&aux (file-cache (slot-value self 'file-cache)))
(mapcar (lambda (p &aux (existing (gethash p file-cache)))
(if existing
existing
(setf (gethash p file-cache)
(make-instance 'cl-source-file :type "lisp"
:pathname p
:name (pathname-name p)
:parent self))))
(directory-files (component-pathname self)
(make-pathname :directory nil :name *wild* :type "lisp"))))
(asdf:defsystem #:aoc
:description "Advent of Code solutions, in Common Lisp"
:author "Matteo Landi <[email protected]>"
:license "MIT"
:version "0.0.1"
:serial t
:depends-on (
#:classified
#:1am
#:cl-ppcre
#:md5
#:pileup
#:split-sequence
#:st-json
)
:components
((:module "vendor"
:serial t
:components ((:file "pmdb")
(:file "quickutils-package")
(:file "quickutils")
))
(:module "upstream"
:serial t
:components ((:file "quickutils-local")
(:file "hset")
(:file "dset")))
(:file "package")
(:file "syntax")
(:module "src"
:serial t
:components ((:file "utils")
(:file "intcode")
(:file "assembunnycode")
(:file "gameoflife")
(:auto-module "2015")
(:auto-module "2016")
(:auto-module "2017")
(:module "2018" :serial t
:components ((:file "day01")
(:file "day02")
(:file "day03")
(:file "day04")
(:file "day05")
(:file "day06")
(:file "day07")
(:file "day08")
(:file "day09")
(:file "day10")
(:file "day11")
(:file "day12")
(:file "day13")
(:file "day14")
(:file "day17")
(:file "day18")
(:file "day20")
(:file "day22")
(:file "day23")
(:file "day25")))
(:auto-module "2019")
(:auto-module "2020")
(:auto-module "2021")
(:auto-module "2022")
(:auto-module "2023")
)))
:in-order-to ((test-op (test-op :aoc/tests))))
(asdf:defsystem :aoc/tests
:description "Advent of Code solutions, in Common Lisp"
:author "Matteo Landi <[email protected]>"
:license "MIT"
:version "0.0.1"
:depends-on (#:aoc)
:perform (test-op (o c) (uiop:symbol-call :aoc '#:run)))