Update Hugo and GH actions versions
[bordeaux-threads.git] / bordeaux-threads.asd
blobf13cae269ec7720f78845ec1795a19ccddf433a9
1 ;;;; -*- Mode: LISP; Syntax: ANSI-Common-lisp; Base: 10; Package: ASDF -*-
2 ;;;; The above modeline is required for Genera. Do not change.
4 #.(unless (or #+asdf3.1 (version<= "3.1" (asdf-version)))
5     (error "You need ASDF >= 3.1 to load this system correctly."))
7 (eval-when (:compile-toplevel :load-toplevel :execute)
8   #+(or armedbear
9         (and allegro multiprocessing)
10         (and clasp threads)
11         (and clisp mt)
12         (and openmcl openmcl-native-threads)
13         (and cmu mp)
14         corman
15         (and ecl threads)
16         genera
17         mezzano
18         mkcl
19         lispworks
20         (and digitool ccl-5.1)
21         (and sbcl sb-thread)
22         scl)
23   (pushnew :thread-support *features*))
25 #-thread-support
26 (error "This implementation is unsupported.")
28 (defsystem :bordeaux-threads
29   :author "Stelian Ionescu <sionescu@cddr.org>"
30   :licence "MIT"
31   :description "Bordeaux Threads makes writing portable multi-threaded apps simple."
32   :version (:read-file-form "version.sexp")
33   :depends-on (:alexandria :global-vars :trivial-features :trivial-garbage
34                            #+(and allegro (version>= 9)) (:require "smputil")
35                            #+(and allegro (not (version>= 9))) (:require "process")
36                            (:feature :corman (:require "threads")))
37   :components ((:static-file "version.sexp")
38                (:module "api-v1"
39                 :pathname "apiv1/"
40                 :serial t
41                 :components
42                         ((:file "pkgdcl")
43                          (:file "bordeaux-threads")
44                          (:file "impl-abcl" :if-feature :armedbear)
45                          (:file "impl-allegro" :if-feature :allegro)
46                          (:file "impl-clasp" :if-feature :clasp)
47                          (:file "impl-clisp" :if-feature :clisp)
48                          (:file "impl-clozure" :if-feature :openmcl)
49                          (:file "impl-cmucl" :if-feature :cmu)
50                          (:file "impl-corman" :if-feature :corman)
51                          (:file "impl-ecl" :if-feature :ecl)
52                          (:file "impl-genera" :if-feature :genera)
53                          (:file "impl-mezzano" :if-feature :mezzano)
54                          (:file "impl-mkcl" :if-feature :mkcl)
55                          (:file "impl-lispworks" :if-feature :lispworks)
56                          (:file "impl-mcl" :if-feature :digitool)
57                          (:file "impl-sbcl" :if-feature :sbcl)
58                          (:file "impl-scl" :if-feature :scl)
59                          (:file "impl-lispworks-condition-variables" :if-feature (:and :lispworks
60                                                                                        (:or :lispworks4 :lispworks5)))
61                          (:file "condition-variables" :if-feature :digitool)
62                          (:file "default-implementations")))
63                (:module "api-v2"
64                 :pathname "apiv2/"
65                 :depends-on ("api-v1")
66                 :serial t
67                 :components
68                         ((:file "pkgdcl")
69                          (:file "bordeaux-threads")
70                          (:file "timeout-interrupt")
71                          (:file "impl-abcl" :if-feature :abcl)
72                          (:file "impl-allegro" :if-feature :allegro)
73                          (:file "impl-clasp" :if-feature :clasp)
74                          (:file "impl-clisp" :if-feature :clisp)
75                          (:file "impl-clozure" :if-feature :clozure)
76                          (:file "impl-cmucl" :if-feature :cmu)
77                          (:file "impl-corman" :if-feature :corman)
78                          (:file "impl-ecl" :if-feature :ecl)
79                          (:file "impl-genera" :if-feature :genera)
80                          (:file "impl-mezzano" :if-feature :mezzano)
81                          (:file "impl-mkcl" :if-feature :mkcl)
82                          (:file "impl-lispworks" :if-feature :lispworks)
83                          (:file "impl-mcl" :if-feature :digitool)
84                          (:file "impl-sbcl" :if-feature :sbcl)
85                          (:file "impl-scl" :if-feature :scl)
86                          (:file "atomics" :if-feature (:not :abcl))
87                          (:file "atomics-java" :if-feature :abcl)
88                          (:file "api-locks")
89                          (:file "api-threads")
90                          (:file "api-semaphores")
91                          (:file "impl-condition-variables-semaphores"
92                           :if-feature :ccl)
93                          (:file "api-condition-variables"))))
94   :in-order-to ((test-op (test-op :bordeaux-threads/test))))
96 (defsystem :bordeaux-threads/test
97   :author "Stelian Ionescu <sionescu@cddr.org>"
98   :description "Bordeaux Threads test suite."
99   :licence "MIT"
100   :version (:read-file-form "version.sexp")
101   :depends-on (:bordeaux-threads :fiveam)
102   :pathname "test/"
103   :serial t
104   :components ((:file "tests-v1")
105                (:file "pkgdcl")
106                (:file "not-implemented")
107                (:file "tests-v2"))
108   :perform (test-op (o c)
109              (symbol-call :5am :run! :bordeaux-threads)
110              (symbol-call :5am :run! :bordeaux-threads-2)))