SBCL: Simplify CFFI symbol reading.

master
Pierre Neidhardt 2020-12-03 13:44:13 +01:00
parent 67d058f0bc
commit 169b241f89
1 changed files with 6 additions and 8 deletions

14
.sbclrc
View File

@ -36,14 +36,12 @@ The actual profiles are in the subsubdirectories.")
(find-guix-library-dirs *guix-profiles-dir*))))
"Call this to set `cffi:*foreign-library-directories*' to DIRS."
(when (ignore-errors (asdf:load-system "cffi"))
(setf (symbol-value (find-symbol (string '*foreign-library-directories*)
(find-package 'cffi)))
(union (symbol-value (find-symbol (string '*foreign-library-directories*)
(find-package 'cffi)))
;; CFFI needs a trailing "/".
(delete nil (mapcar #'uiop:ensure-directory-pathname dirs))
:test #'uiop:pathname-equal))))
(let ((sym (read-from-string "cffi:*foreign-library-directories*")))
(setf (symbol-value sym)
(union (symbol-value sym)
;; CFFI needs a trailing "/".
(delete nil (mapcar #'uiop:ensure-directory-pathname dirs))
:test #'uiop:pathname-equal)))))
;; Set it by default.
(set-cffi-library-dirs)