;;;; cl-deck-builder2.asd ;;;; ;;;; ASDF System Definition File for "The Deck Builder" Common Lisp Project. ;;;; ;;;; You can read more about ASDF here: ;;;; ;;;; ;; (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))