-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathbordeaux-threads.asd
110 lines (105 loc) · 5.14 KB
/
bordeaux-threads.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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
;;;; -*- Mode: LISP; Syntax: ANSI-Common-lisp; Base: 10; Package: ASDF -*-
;;;; The above modeline is required for Genera. Do not change.
#.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version)))
(error "You need ASDF >= 3.1 to load this system correctly."))
(eval-when (:compile-toplevel :load-toplevel :execute)
#+(or armedbear
(and allegro multiprocessing)
(and clasp threads)
(and clisp mt)
(and openmcl openmcl-native-threads)
(and cmu mp)
corman
(and ecl threads)
genera
mezzano
mkcl
lispworks
(and digitool ccl-5.1)
(and sbcl sb-thread)
scl)
(pushnew :thread-support *features*))
#-thread-support
(error "This implementation is unsupported.")
(defsystem :bordeaux-threads
:author "Stelian Ionescu <[email protected]>"
:licence "MIT"
:description "Bordeaux Threads makes writing portable multi-threaded apps simple."
:version (:read-file-form "version.sexp")
:depends-on (:alexandria :global-vars :trivial-features :trivial-garbage
#+(and allegro (version>= 9)) (:require "smputil")
#+(and allegro (not (version>= 9))) (:require "process")
(:feature :corman (:require "threads")))
:components ((:static-file "version.sexp")
(:module "api-v1"
:pathname "apiv1/"
:serial t
:components
((:file "pkgdcl")
(:file "bordeaux-threads")
(:file "impl-abcl" :if-feature :armedbear)
(:file "impl-allegro" :if-feature :allegro)
(:file "impl-clasp" :if-feature :clasp)
(:file "impl-clisp" :if-feature :clisp)
(:file "impl-clozure" :if-feature :openmcl)
(:file "impl-cmucl" :if-feature :cmu)
(:file "impl-corman" :if-feature :corman)
(:file "impl-ecl" :if-feature :ecl)
(:file "impl-genera" :if-feature :genera)
(:file "impl-mezzano" :if-feature :mezzano)
(:file "impl-mkcl" :if-feature :mkcl)
(:file "impl-lispworks" :if-feature :lispworks)
(:file "impl-mcl" :if-feature :digitool)
(:file "impl-sbcl" :if-feature :sbcl)
(:file "impl-scl" :if-feature :scl)
(:file "impl-lispworks-condition-variables" :if-feature (:and :lispworks
(:or :lispworks4 :lispworks5)))
(:file "condition-variables" :if-feature :digitool)
(:file "default-implementations")))
(:module "api-v2"
:pathname "apiv2/"
:depends-on ("api-v1")
:serial t
:components
((:file "pkgdcl")
(:file "bordeaux-threads")
(:file "timeout-interrupt")
(:file "impl-abcl" :if-feature :abcl)
(:file "impl-allegro" :if-feature :allegro)
(:file "impl-clasp" :if-feature :clasp)
(:file "impl-clisp" :if-feature :clisp)
(:file "impl-clozure" :if-feature :clozure)
(:file "impl-cmucl" :if-feature :cmu)
(:file "impl-corman" :if-feature :corman)
(:file "impl-ecl" :if-feature :ecl)
(:file "impl-genera" :if-feature :genera)
(:file "impl-mezzano" :if-feature :mezzano)
(:file "impl-mkcl" :if-feature :mkcl)
(:file "impl-lispworks" :if-feature :lispworks)
(:file "impl-mcl" :if-feature :digitool)
(:file "impl-sbcl" :if-feature :sbcl)
(:file "impl-scl" :if-feature :scl)
(:file "atomics" :if-feature (:not :abcl))
(:file "atomics-java" :if-feature :abcl)
(:file "api-locks")
(:file "api-threads")
(:file "api-semaphores")
(:file "impl-condition-variables-semaphores"
:if-feature :ccl)
(:file "api-condition-variables"))))
:in-order-to ((test-op (test-op :bordeaux-threads/test))))
(defsystem :bordeaux-threads/test
:author "Stelian Ionescu <[email protected]>"
:description "Bordeaux Threads test suite."
:licence "MIT"
:version (:read-file-form "version.sexp")
:depends-on (:bordeaux-threads :fiveam)
:pathname "test/"
:serial t
:components ((:file "tests-v1")
(:file "pkgdcl")
(:file "not-implemented")
(:file "tests-v2"))
:perform (test-op (o c)
(symbol-call :5am :run! :bordeaux-threads)
(symbol-call :5am :run! :bordeaux-threads-2)))