forked from takagi/cl-cuda
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcl-cuda.asd
More file actions
81 lines (74 loc) · 2.71 KB
/
cl-cuda.asd
File metadata and controls
81 lines (74 loc) · 2.71 KB
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
#|
This file is a part of cl-cuda project.
Copyright (c) 2012 Masayuki Takagi (kamonama@gmail.com)
|#
(defpackage :cl-cuda-asd
(:use :cl :asdf :uiop))
(in-package :cl-cuda-asd)
(load-system "cffi-grovel")
;;;
;;; Cuda-grovel-file ASDF component
;;;
(defclass cuda-grovel-file (cffi-grovel:grovel-file) ())
(defmethod asdf:perform :around ((o operation) (c cuda-grovel-file))
;; Compile a grovel file only when CUDA SDK is found.
(let ((sdk-not-found (symbol-value (intern "*SDK-NOT-FOUND*" "CL-CUDA.DRIVER-API"))))
(if sdk-not-found
(asdf::mark-operation-done o c)
(call-next-method))))
;;;
;;; Cl-cuda system definition
;;;
(defsystem "cl-cuda"
:version "0.1"
:author "Masayuki Takagi"
:license "LLGPL"
:depends-on ("cffi" "alexandria" "external-program" "osicat"
"cl-pattern" "split-sequence" "cl-reexport" "cl-ppcre")
:components ((:module "src"
:serial t
:components
((:module "driver-api"
:serial t
:components
((:file "package")
(:file "get-error-string")
(:file "cffi-grovel")
(:file "sdk-not-found")
(:file "library")
(:file "type")
(cuda-grovel-file "type-grovel")
(:file "enum")
(:file "function")))
(:module "lang"
:serial t
:components
((:file "util")
(:file "data")
(:file "type")
(:file "syntax")
(:file "environment")
(:file "built-in")
(:file "kernel")
(:file "compiler/compile-data")
(:file "compiler/compile-type")
(:file "compiler/type-of-expression")
(:file "compiler/compile-expression")
(:file "compiler/compile-statement")
(:file "compiler/compile-kernel")
(:file "lang")))
(:module "api"
:serial t
:components
((:file "nvcc")
(:file "kernel-manager")
(:file "memory")
(:file "context")
(:file "defkernel")
(:file "macro")
(:file "timer")
(:file "api")))
(:file "cl-cuda"))))
:description "Cl-cuda is a library to use NVIDIA CUDA in Common Lisp programs."
:long-description #.(read-file-string (subpathname *load-pathname* "README.markdown"))
:in-order-to ((test-op (test-op "cl-cuda-test"))))