Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the asd-generator Reference Manual, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 11:42:50 2020 GMT+0.
• Introduction | What asd-generator is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
Automatic generator for ASDF's .asd files.
This is still in alpha, but I use it to build my own projects, if it means anything. :P
This autoregenerates an .asd file with a customizable :COMPONENTS
field, based on the file structure you provide.
The project must have a valid .asd
file containing a single asdf:defsystem
expression.
The project must have a asd-generator-data.asd
file with the structure outlined below.
Currently, not available from quicklisp.
With Roswell, you can:
$ ros install phoe/asd-generator
Syntax: (write-asd system-designator &key im-sure)
This writes the ASD file for a provided ASDF-loadable system.
You need to press Enter before anything happens, unless the im-sure
key is set to non-nil.
Syntax: (regen &key im-sure)
This calls write-asd on the current package, as stated in the *package*
variable.
You need to press Enter before anything happens, unless the im-sure
key is set to non-nil.
update-asdf [-y] [-C pathname] [-f data] [[-s SYSTEM]*]
Mostly corresponds to calling regen
and write-asd
.
:im-sure t
.make -C path
.asd
in the system name.asd-generator-data.asd
.
Similar to Makefile -f makefile.mk
.ql:register-local-projects
.Save all of your files in Emacs before running this, as it will pull files like .#file.lisp
into the :COMPONENTS
tree along with all others.
Original asdf file:
(defsystem #:asd-generator-test
:description "system for testing asd-generator"
:author "Masataro Asai"
:depends-on (#:cl-fad
#:iterate
#:alexandria)
:serial t
:components ())
asd-generator-data.asd
(("package") ;single element list (<PATH>) is an abbreviation of (:file <PATH>)
(:file "constants")
(:file "constants2" :depends-on ("constants")) ; you have to specify :file when you use other features
(:cffi-grovel-file "grovel") ; works well with asdf extensions
;;
(:dir :src ; abbreviation of :module + :components.
("a")
("b")
(:dir "sub" ("a"))
(:rest)
;; Traverse the current directory recursively and expands to the list of
;; files that are not included by any other directives.
;;
;; This means that the expansion is affected by the components not just
;; before, but also after (:rest). Thus the files "a", "b", "sub/a", "c",
;; "rest", all files below "more-grovels", all files below "non-recursive",
;; all files below "sub2" are excluded.
;;
;; This could be somewhat similar to the behavior of
;; (call-next-method).
;; (:rest :as :file) ; You can specify the component type (:file by default).
("c")
;; A file rest.lisp should be included by (:file "rest")
(:file "rest")
(:dir "more-grovels"
(:rest :as :cffi-grovel-file)) ; Specifying the component type.
(:dir "non-recursive"
;; You can disable the recursive traversal. Note that while the
;; expansion includes only the files immediately below
;; "non-recursive" and does not include the files in the
;; subdirectory "non-recursive/sub", the files below
;; "non-recursive/sub" are also excluded from the above (:rest)
;; directive. In other words, all files below "non-recursive" are
;; treated as if they are already included.
(:rest :recursive nil))
(:dir "sub2") ; directory without subcomponents imply (:rest).
;; (:dir "sub2" (:rest)) ; eqivalent definition
))
Result asdf file:
(defsystem #:asd-generator-test
:description "system for testing asd-generator"
:author "Masataro Asai"
:depends-on (#:cl-fad
#:iterate
#:alexandria)
:serial t
:components ((:file "package")
(:file "constants")
(:file "constants2"
:depends-on ("constants"))
(:cffi-grovel-file "grovel")
(:module "src"
:components ((:file "a")
(:file "b")
(:module "sub"
:components ((:file "a")))
(:file "not-specified-anywhere/a")
(:file "not-specified-anywhere/b")
(:file "not-specified-anywhere/c")
(:file "c")
(:file "rest")
(:module "more-grovels"
:components ((:cffi-grovel-file "a")
(:cffi-grovel-file "b")
(:cffi-grovel-file "c")))
(:module "non-recursive"
:components ((:file "a")
(:file "b")
(:file "c")))
(:module "sub2"
:components ((:file "a")
(:file "b")
(:file "c")))))))
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The asd-generator system |
Michał "phoe" Herda <phoe@openmailbox.org>
GPLv3
Automatic directory scanner/generator for .asd project files.
asd-generator.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The asd-generator.asd file | ||
• The asd-generator/package.lisp file | ||
• The asd-generator/asd-generator.lisp file |
Next: The asd-generator/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
asd-generator.asd
asd-generator (system)
Next: The asd-generator/asd-generator․lisp file, Previous: The asd-generator․asd file, Up: Lisp files [Contents][Index]
asd-generator (system)
package.lisp
Previous: The asd-generator/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
asd-generator (system)
asd-generator.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The asd-generator package |
package.lisp (file)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported functions |
Previous: Exported definitions, Up: Exported definitions [Contents][Index]
asd-generator.lisp (file)
asd-generator.lisp (file)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal macros | ||
• Internal functions |
Next: Internal functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
Ensure the PLACE is a system
asd-generator.lisp (file)
Previous: Internal macros, Up: Internal definitions [Contents][Index]
asd-generator.lisp (file)
asd-generator.lisp (file)
asd-generator.lisp (file)
asd-generator.lisp (file)
Generate a form for the :COMPONENT section of the ASDF definition of SYSTEM, from the given DATA
asd-generator.lisp (file)
asd-generator.lisp (file)
asd-generator.lisp (file)
asd-generator.lisp (file)
Read a definition file and find the asdf definition. Handle older ASDF files which contain multiple forms. The recent ASDF assumes one system per file.
asd-generator.lisp (file)
asd-generator.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | A F L |
---|
Jump to: | A F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | A B E F G M P R T W |
---|
Jump to: | A B E F G M P R T W |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | A P S |
---|
Jump to: | A P S |
---|