cl-deck-builder2/cl-deck-builder2.asd
2024-01-21 02:35:35 -05:00

251 lines
11 KiB
Common Lisp

;;;; cl-deck-builder2.asd
;;;;
;;;; ASDF System Definition File for "The Deck Builder" Common Lisp Project.
;;;;
;;;; You can read more about ASDF here:
;;;; <https://lispcookbook.github.io/cl-cookbook/systems.html>
;;;;
;; (require "asdf") ;; for CI
(pushnew :verbose-no-init *features*)
(asdf:defsystem "cl-deck-builder2"
:version "0.4.0"
:author "Bubblegumdrop"
:license "Do Not Redistribute"
:depends-on ("clack"
"lack"
"caveman2"
"envy"
"cl-ppcre"
"uiop"
;; for @route annotation
;; "cl-syntax-annot"
;; HTML Template
"djula"
"djula-gettext"
"gettext"
;; for DB
"mito"
"mito-auth"
"mito-attachment"
"datafly"
"sxql"
"dbd-sqlite3"
;; for Models
"assoc-utils" ; AGET is very handy
"cl-csv" ; CSV import
"cl-json" ; JSON import
"local-time"
"split-sequence"
"can"
;; Documentation!
;; "documentation-utils"
;; "documentation-utils-extensions"
"cl-org-mode"
;; More of Shinmeraa's code
"ratify"
"deploy"
;; QR Code Generator
"lispqr"
;; Download stuff
"trivial-download"
;; Error Handling
"clack-errors"
"lack-middleware-clack-errors"
;; Better logging
"verbose"
;; WebSocket chat server backend
"websocket-driver"
"lack-middleware-csrf"
"cl-markup"
"hermetic"
"inferior-shell"
;; Background job processing
"psychiq"
"cl-fad"
"slynk")
:components ((:module "src"
:components
((:file "main" :depends-on ("config" "view" "db" "draw" "web"))
(:file "config")
(:file "db" :depends-on ("config" "toolkit"))
(:file "view" :depends-on ("config" "i18n"))
(:file "draw" :depends-on ("models"))
(:file "i18n")
(:module "toolkit"
:components
((:file "packages")
(:file "paths")
(:file "git")
(:file "time")
(:file "money")
(:file "utils")))
(:module "models"
:components
(;; (:file "toolkit")
(:file "packages")
;; (:file "model")
(:file "registered-table-mixin")
(:file "attachment")
(:file "category")
(:file "constructed-decks" :depends-on ("ydk" "ygoprodeck-classes" "ygoprodeck-methods" "ygoprodeck-fields"))
(:file "crystal-commerce" :depends-on ("attachment" "ygoprodeck"))
(:file "feedback" :depends-on ("user"))
(:file "label-maker")
(:file "qr-code")
(:file "sqlite-schema")
(:file "user")
(:file "ydk" :depends-on ("ygoprodeck"))
(:file "ygoprodeck")
(:file "ygoprodeck-fields")
(:file "ygoprodeck-classes" :depends-on ("ygoprodeck-fields"))
(:file "ygoprodeck-methods")
(:file "ygoprodeck-cardinfo")
(:file "ygoprodeck-json"))
:depends-on ("db" "toolkit"))
(:module "web"
:components
((:file "packages")
(:file "setup")
(:file "flash-message")
(:file "params")
(:file "query")
(:file "toolkit")
(:file "index")
(:file "builder" :depends-on ("search"))
(:file "cards")
(:file "constructed-decks")
(:file "category")
(:file "contact")
(:file "decks")
(:file "inventory" :depends-on ("search"))
(:file "qr")
(:file "search")
(:file "sse")
(:file "upload")
(:file "user")
(:file "ydk")
(:file "label-maker" :depends-on ("query"))
(:file "tinymce"))
:depends-on ("db" "i18n" "view" "models" "draw" "toolkit"))))
;; TODO seeing this all here makes me want to really compress this.
(:module "templates"
:components
;; Order is important: the ones that extend default.html
;; must be declared after it, because we compile all of them
;; at build time.
((:STATIC-FILE "ydk/index.html") (:STATIC-FILE "user/user-menu-bar.html")
(:STATIC-FILE "user/user-list.html") (:STATIC-FILE "user/register.html")
(:STATIC-FILE "user/login.html") (:STATIC-FILE "user/index.html")
(:STATIC-FILE "user/admin.html") (:STATIC-FILE "upload.html")
(:STATIC-FILE "template.Dockerfile") (:STATIC-FILE "tabs.html")
(:STATIC-FILE "qr.html") (:STATIC-FILE "pages.html")
(:STATIC-FILE "news.html") (:STATIC-FILE "navbar.html")
(:STATIC-FILE "navbar-js.html") (:STATIC-FILE "messages.html")
(:STATIC-FILE "markdown.html") (:STATIC-FILE "layouts/minimal.html")
(:STATIC-FILE "layouts/html-head.html") (:STATIC-FILE "layouts/default.html")
(:STATIC-FILE "latex/default.tpl.tex")
(:STATIC-FILE "latex/ULINE-S-20247.tpl.tex")
(:STATIC-FILE "latex/ULINE-S-20247.tex")
(:STATIC-FILE "latex/Avery-5160.tpl.tex")
(:STATIC-FILE "latex/Avery-5160.tex") (:STATIC-FILE "label-maker.html")
(:STATIC-FILE "kde-team.html") (:STATIC-FILE "inventory/variant-results.html")
(:STATIC-FILE "inventory/search-results.html")
(:STATIC-FILE "inventory/old.html") (:STATIC-FILE "inventory/new.html")
(:STATIC-FILE "inventory/index.html") (:STATIC-FILE "inventory/import.html")
(:STATIC-FILE "inventory/edit.html") (:STATIC-FILE "inventory/base-menu.html")
(:STATIC-FILE "inventory/advanced-search.html")
(:STATIC-FILE "inventory/_view_result.html")
(:STATIC-FILE "inventory/_search_result_th.html")
(:STATIC-FILE "inventory/_new_row.html")
(:STATIC-FILE "inventory/_inventory_variants.html")
(:STATIC-FILE "inventory/_edit_row.html")
(:STATIC-FILE "inventory/_edit_result.html")
(:STATIC-FILE "inventory/_advanced_search_select.html")
(:STATIC-FILE "inventory/_advanced_search_input.html")
(:STATIC-FILE "index.html") (:STATIC-FILE "footer.html")
(:STATIC-FILE "file-js.html") (:STATIC-FILE "docs.md")
(:STATIC-FILE "docs.html") (:STATIC-FILE "decks/search.html")
(:STATIC-FILE "decks/saved-category-list.html")
(:STATIC-FILE "decks/index.html")
(:STATIC-FILE "decks/decks-by-category.html")
(:STATIC-FILE "decks/deck-text-three-column.html")
(:STATIC-FILE "decks/deck-text-textarea.html")
(:STATIC-FILE "decks/deck-text-list.html")
(:STATIC-FILE "decks/deck-text-list-original.html")
(:STATIC-FILE "decks/deck-select.html")
(:STATIC-FILE "decks/deck-menu-bar.html")
(:STATIC-FILE "decks/deck-image-listing.html")
(:STATIC-FILE "decks/deck-html-results.html")
(:STATIC-FILE "decks/deck-html-results-1.html")
(:STATIC-FILE "decks/deck-controls.html")
(:STATIC-FILE "decks/category-select.html")
(:STATIC-FILE "decks/cards-in-decks.html")
(:STATIC-FILE "decks/_field_control_select.html")
(:STATIC-FILE "contact/list.html") (:STATIC-FILE "contact/index.html")
(:STATIC-FILE "contact/admin.html")
(:STATIC-FILE "construct/select-sets.html")
(:STATIC-FILE "construct/pull-menu-bar.html")
(:STATIC-FILE "construct/index.html") (:STATIC-FILE "chat.html")
(:STATIC-FILE "category/index.html") (:STATIC-FILE "category/explain.html")
(:STATIC-FILE "category/child-list.html")
(:STATIC-FILE "category/child-form.html")
(:STATIC-FILE "category/category-menu-bar.html")
(:STATIC-FILE "cards/view.html") (:STATIC-FILE "cards/search-results.html")
(:STATIC-FILE "cards/info.html") (:STATIC-FILE "cards/index.html")
(:STATIC-FILE "cards/cc-item-view.html")
(:STATIC-FILE "cards/cc-item-row.html")
(:STATIC-FILE "cards/_search_result_th.html")
(:STATIC-FILE "cards/_advanced_search_top.html")
(:STATIC-FILE "cards/_advanced_search_select_kind.html")
(:STATIC-FILE "cards/_advanced_search_select.html")
(:STATIC-FILE "cards/_advanced_search_numeric.html")
(:STATIC-FILE "cards/_advanced_search_input_numeric.html")
(:STATIC-FILE "cards/_advanced_search_attrs.html")
(:STATIC-FILE "builder/search-results.html")
(:STATIC-FILE "builder/saved-deck-list.html")
(:STATIC-FILE "builder/saved-category-list.html")
(:STATIC-FILE "builder/index.html")
(:STATIC-FILE "builder/deck-controls.html")
(:STATIC-FILE "builder/current-deck-list.html")
(:STATIC-FILE "builder/base-menu.html")
(:STATIC-FILE "builder/_search_results_th.html")
(:STATIC-FILE "builder/_jquery_droppable.html")
(:STATIC-FILE "builder/_current_deck_list-1.html")
(:STATIC-FILE "builder/_advanced_search_select_kind.html")
(:STATIC-FILE "builder/_advanced_search_select.html")
(:STATIC-FILE "builder/_advanced_search_numeric.html")
(:STATIC-FILE "builder/_advanced_search_input_numeric.html")
(:STATIC-FILE "builder/_advanced_search_attrs.html")
(:STATIC-FILE "_errors/404.html"))))
:description "Deck Builder Project"
:defsystem-depends-on (:deploy) ;; (ql:quickload "deploy") before
:build-operation "deploy-op" ;; instead of "program-op"
:build-pathname "cl-deck-builder2"
:entry-point "cl-deck-builder2:my/start"
:in-order-to ((test-op (test-op "cl-deck-builder2-test"))))
;; Use compression: from 108M, 0.04s startup time to 24M, 0.37s.
#+sb-core-compression
(defmethod asdf:perform ((o asdf:image-op) (c asdf:system))
(uiop:dump-image (asdf:output-file o c) :executable t :compression t))