Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the quickapp Reference Manual, generated automatically by Declt version 3.0 "Montgomery Scott" on Thu Mar 11 14:37:30 2021 GMT+0.
• Introduction | What quickapp 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 |
A common lisp project for generating template projects that use sbcl and buildapp
See https://github.com/triclops200/quickapp-cli for the command line standalone utility.
(ql:quickload :quickapp)
(quickapp:quickapp
"src/lisp/test-project"
:project-name "test-project"
:executable-name "test.out"
:project-description "This is a sample test project"
:project-author "YOUR NAME HERE"
:dependencies '(:sdl2 :cl-openal))
This creates the needed files and Makefile as well as a template project.
For easy interactive development in slime, just do (assuming one is in their generated project directory):
(load "slime.lisp")
(in-package :<YOUR PACKAGE NAME>)
This library also contains two functions for dealing with argument handling for the generated application: (quickapp:parse-args)
and (quickapp:generate-flag-string)
.
An example usage is shown below
(defun -main (&optional args)
"Entry point"
(let* ((arg-defs '(("h" "help" "Display this help menu")
("d" "dependencies" "(:dep1 [:dep2 ...])" "The dependencies")
("p" "project-name" "NAME" "The project name")
("a" "project-author" "NAME" "The name of the author")
("s" "project-description" "DESCRIPTION" "The project description")
("e" "executable-name" "NAME" "The executable name")))
(parsed-args (quickapp:parse-args arg-defs (cdr args))))
(if (or (/= (length (first parsed-args)) 1)
(assoc "help" (second parsed-args) :test #'string=))
(progn (format t "Usage: ~a PROJECT-PATH [OPTIONS]~%OPTIONS:~%~a~%~a~%~a~a~%~a~%~a~%"
(first args)
(quickapp:generate-flag-string arg-defs)
"Example Usage: " (first args) " test-project \\"
" -d\"(:sdl2 :cl-opengl)\" \\"
" --project-author=cluser"))
(format t "~a~%" parsed-args))))
Running that application with the --help flag results in:
Usage: ./quickapp PROJECT-PATH [OPTIONS]
OPTIONS:
-h --help Display this help menu
-d --dependencies=(:dep1 [:dep2 ...]) The dependencies
-p --project-name=NAME The project name
-a --project-author=NAME The name of the author
-s --project-description=DESCRIPTION The project description
-e --executable-name=NAME The executable name
Example Usage:
./quickapp test-project \
-d"(:sdl2 :cl-opengl)" \
--project-author=cluser
Running this command: ./quickapp test-project -d"(:sdl2 :cl-opengl)" --project-author=cluser
results in this list returned as parsed-args
(("test-project")
(("project-author" . "cluser") ("dependencies" . "(:sdl2 :cl-opengl)")))
#License Licensed under Modified BSD License.
See License.txt for more details.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The quickapp system |
Bryan Hoyle
Modified BSD License
A utility library to automate much of the app creation process
quickapp.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The quickapp.asd file | ||
• The quickapp/package.lisp file | ||
• The quickapp/quickapp.lisp file | ||
• The quickapp/argument-parsing.lisp file |
Next: The quickapp/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
quickapp.asd
quickapp (system)
Next: The quickapp/quickapp․lisp file, Previous: The quickapp․asd file, Up: Lisp files [Contents][Index]
Next: The quickapp/argument-parsing․lisp file, Previous: The quickapp/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
quickapp (system)
quickapp.lisp
Previous: The quickapp/quickapp․lisp file, Up: Lisp files [Contents][Index]
quickapp.lisp (file)
quickapp (system)
argument-parsing.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The quickapp package |
package.lisp (file)
common-lisp
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]
Generate the part of the help string that documents the options from the arg definition
argument-parsing.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
Actually calls all the functions to parse the args into the correct form.
argument-parsing.lisp (file)
Create the project from the templates
quickapp.lisp (file)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal special variables | ||
• Internal macros | ||
• Internal functions |
Next: Internal macros, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
Next: Internal functions, Previous: Internal special variables, Up: Internal definitions [Contents][Index]
Similar to the clojure loop macro
argument-parsing.lisp (file)
A macro to allow one to write to a variable string stream and get the body result out
argument-parsing.lisp (file)
Previous: Internal macros, Up: Internal definitions [Contents][Index]
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
Fill a string with a character until it is at least as long as n specifies
argument-parsing.lisp (file)
This is a formatter for an argdef to display properly
argument-parsing.lisp (file)
This unifies the named arguments to use the long form.
argument-parsing.lisp (file)
Fix all of the named args to use the long form
argument-parsing.lisp (file)
quickapp.lisp (file)
Parses one argument/argument pair into the named/unnamed lists appropriately
argument-parsing.lisp (file)
Parse an argument list into the appropriate list
argument-parsing.lisp (file)
A reducer that allows f to control the iteration as well as the accumulator
argument-parsing.lisp (file)
quickapp.lisp (file)
quickapp.lisp (file)
Fully split a string by seperator.
argument-parsing.lisp (file)
Returns a value pair representing the first split in the string matching the seperator string
argument-parsing.lisp (file)
A relative subsequence function
argument-parsing.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: | F L Q |
---|
Jump to: | F L Q |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | D E F G L M P Q R S W |
---|
Jump to: | D E F G L M P Q R S W |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
S |
---|
Jump to: | *
S |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | P Q S |
---|
Index Entry | Section | ||
---|---|---|---|
| |||
P | |||
Package, quickapp : | The quickapp package | ||
| |||
Q | |||
quickapp : | The quickapp system | ||
quickapp : | The quickapp package | ||
| |||
S | |||
System, quickapp : | The quickapp system | ||
|
Jump to: | P Q S |
---|