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*)))) (find-guix-library-dirs *guix-profiles-dir*))))
"Call this to set `cffi:*foreign-library-directories*' to DIRS." "Call this to set `cffi:*foreign-library-directories*' to DIRS."
(when (ignore-errors (asdf:load-system "cffi")) (when (ignore-errors (asdf:load-system "cffi"))
(setf (symbol-value (find-symbol (string '*foreign-library-directories*) (let ((sym (read-from-string "cffi:*foreign-library-directories*")))
(find-package 'cffi))) (setf (symbol-value sym)
(union (symbol-value sym)
(union (symbol-value (find-symbol (string '*foreign-library-directories*) ;; CFFI needs a trailing "/".
(find-package 'cffi))) (delete nil (mapcar #'uiop:ensure-directory-pathname dirs))
;; CFFI needs a trailing "/". :test #'uiop:pathname-equal)))))
(delete nil (mapcar #'uiop:ensure-directory-pathname dirs))
:test #'uiop:pathname-equal))))
;; Set it by default. ;; Set it by default.
(set-cffi-library-dirs) (set-cffi-library-dirs)