leibowitz
Experimental Common Lisp object storage abstraction for Unix file systems
leibowitz/build.lisp
Download raw file: build.lisp
(defpackage :leibowitz.build (:use #:cl) (:export #:discover-systems #:build #:test)) (in-package :leibowitz.build) (defun discover-systems (&optional (dir *default-pathname-defaults*)) (when (uiop:directory-exists-p dir) (when (member "asd" (mapcar #'pathname-type (uiop:directory-files dir)) :test #'equal) (push dir asdf:*central-registry*)) (mapcar #'discover-systems (uiop:subdirectories dir)))) (defun call-quickload (system) "Prevent the Lisp reader from yelling about package QL not existing." (funcall (find-symbol "QUICKLOAD" :ql) system)) (defun build () (format T "Using Quicklisp? ~S~%" (uiop:getenv "WITH_QUICKLISP")) (if (uiop:getenv "WITH_QUICKLISP") (call-quickload :leibowitz) (discover-systems #P"build/dependencies/")) (asdf:make :leibowitz) (uiop:quit)) (defun test () (format T "Using Quicklisp? ~S~%" (uiop:getenv "WITH_QUICKLISP")) (if (uiop:getenv "WITH_QUICKLISP") (call-quickload :leibowitz/tests) (discover-systems #P"build/dependencies/")) (asdf:test-system :leibowitz) (uiop:quit))