From: Dmitry Kalyanov Date: Sun, 3 May 2009 04:51:19 +0000 (+0400) Subject: Portability: add definition of gsize for x86; add other names of libraries X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=449168ece946ea586313094e0305782884ae9b2f;p=cl-gtk2.git Portability: add definition of gsize for x86; add other names of libraries --- diff --git a/gdk/gdk.package.lisp b/gdk/gdk.package.lisp index 935593b..7e600a9 100644 --- a/gdk/gdk.package.lisp +++ b/gdk/gdk.package.lisp @@ -11,4 +11,9 @@ (in-package :gdk) -(load-foreign-library "libgdk-x11-2.0.so") \ No newline at end of file +(eval-when (:compile-toplevel :load-toplevel :execute) + (define-foreign-library gdk + (:unix (:or "libgdk-x11-2.0.so.0" "libgdk-x11-2.0.so")) + (t "libgdk-2.0"))) + +(use-foreign-library gdk) \ No newline at end of file diff --git a/glib/glib.lisp b/glib/glib.lisp index b7a132c..20263a1 100644 --- a/glib/glib.lisp +++ b/glib/glib.lisp @@ -27,12 +27,17 @@ (eval-when (:compile-toplevel :load-toplevel :execute) (define-foreign-library glib - (:unix "libglib-2.0.so") - (t "glib-2.0"))) + (:unix (:or "libglib-2.0.so.0" "libglib-2.0.so")) + (t "libglib-2.0"))) (use-foreign-library glib) -(load-foreign-library "libgthread-2.0.so") +(eval-when (:compile-toplevel :load-toplevel :execute) + (define-foreign-library gthread + (:unix (:or "libgthread-2.0.so.0" "libgthread-2.0.so")) + (t "libgthread-2.0"))) + +(use-foreign-library gthread) ;; ;; Glib Fundamentals @@ -45,9 +50,10 @@ ;; TODO: not sure about these: for amd64 they are ok (eval-when (:compile-toplevel :load-toplevel :execute) - (if (cffi-features:cffi-feature-p :x86-64) - (defctype gsize :uint64) - (error "Unknown type 'gsize'"))) + (cond + ((cffi-features:cffi-feature-p :x86-64) (defctype gsize :uint64)) + ((cffi-features:cffi-feature-p :x86) (defctype gsize :ulong)) + (t (error "Can not define 'gsize', unknown CPU architecture (known are x86 and x86-64)")))) (defctype gssize :long) diff --git a/glib/gobject.package.lisp b/glib/gobject.package.lisp index f077581..40852a5 100644 --- a/glib/gobject.package.lisp +++ b/glib/gobject.package.lisp @@ -65,7 +65,12 @@ (in-package :gobject) -(load-foreign-library "libgobject-2.0.so") +(eval-when (:compile-toplevel :load-toplevel :execute) + (define-foreign-library gobject + (:unix (:or "libgobject-2.0.so.0" "libgobject-2.0.so")) + (t "libgobject-2.0"))) + +(use-foreign-library gobject) (defvar *gobject-debug* nil) diff --git a/gtk/gtk.package.lisp b/gtk/gtk.package.lisp index ab19f54..b71d700 100644 --- a/gtk/gtk.package.lisp +++ b/gtk/gtk.package.lisp @@ -16,7 +16,12 @@ (in-package :gtk) -(load-foreign-library "libgtk-x11-2.0.so") +(eval-when (:compile-toplevel :load-toplevel :execute) + (define-foreign-library gtk + (:unix (:or "libgtk-x11-2.0.so.0" "libgtk-x11-2.0.so")) + (t "libgtk-2.0"))) + +(use-foreign-library gtk) #+sbcl (when (and (find-package "SB-EXT") (find-symbol "SET-FLOATING-POINT-MODES" (find-package "SB-EXT")))