about summary refs log tree commit diff
path: root/pkgs/development/lisp-modules/patches/qt-libs-dont-download.patch
blob: 4acf0a9d3dda961f8f1413eef81b682ef67eff55 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--- a/qt-libs.asd
+++ b/qt-libs.asd
@@ -17,5 +17,4 @@
   :components ((:file "qt-libs"))
   :depends-on (:qt-lib-generator
                :cl-ppcre
-               :cffi)
-  :perform (asdf:load-op :after (op c) (uiop:symbol-call :qt-libs :ensure-standalone-libs)))
+               :cffi))
--- a/qt-libs.lisp
+++ b/qt-libs.lisp
@@ -94,16 +94,14 @@
   standalone-dir)

 (defun %ensure-lib-loaded (file)
-  (let ((file (etypecase file
-                (pathname file)
-                (string (installed-library-file file))))
-        (name (intern (string-upcase (pathname-name file))))
-        #+sbcl(sb-ext:*muffled-warnings* 'style-warning))
-    (cffi::register-foreign-library
-     name `((T ,file))
-     :search-path (to-directory file))
-    (unless (cffi:foreign-library-loaded-p name)
-      (cffi:load-foreign-library name))))
+ (let ((name (make-pathname :name (format nil "lib~a" file)
+                             :type #+unix "so"
+                                   #+darwin "dylib")))
+    (or (find-if (lambda (lib)
+                   (equal (cffi:foreign-library-pathname lib)
+                          (namestring name)))
+                 (cffi:list-foreign-libraries))
+        (cffi:load-foreign-library name))))

 (defun ensure-lib-loaded (file)
   (cond ((pathnamep file)