31 lines
		
	
	
	
		
			1,019 B
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			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)
 |