tvl-depot/build.lisp
Vincent Ambo bd3b2782b9 feat(lisp): Correctly set location for static assets in Nix builds
In order to let Hunchentoot serve the static assets from the correct
location, the *static-file-location* parameter is set before image
dumping based on the $out-envvar which is present during the build
process.

This can easily be set manually in the config file if required by a
user.
2017-12-31 15:31:52 +01:00

31 lines
1,019 B
Common Lisp

;; Build script for use within Nix.
(require :asdf)
(require :sb-posix)
(require :cffi)
(push (format nil "~A/" (sb-posix:getcwd)) asdf:*central-registry*)
;; Quicklisp is configured in the Nix build script
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
;; OpenSSL linking requires pkg_config on NixOS.
(ql:quickload "inferior-shell")
(defun pkg-config-lib-path (lib)
"Look up the location of a library using pkg-config."
(let ((flag (inferior-shell:run `("pkg-config" "--libs-only-L" ,lib)
:output '(:string :stripped t))))
(concatenate 'string (subseq flag 2) "/")))
(pushnew (pathname (pkg-config-lib-path "openssl"))
cffi:*foreign-library-directories*
:test #'equal)
;; cl-prevalence is not in the current Quicklisp -> Nix snapshot
(ql:quickload "cl-prevalence")
(asdf:operate 'asdf:program-op :gemma)