diff --git a/collects/racket/draw/private/libs.rkt b/collects/racket/draw/private/libs.rkt index 446388cdd0..29adf9d469 100644 --- a/collects/racket/draw/private/libs.rkt +++ b/collects/racket/draw/private/libs.rkt @@ -17,7 +17,8 @@ (path->string (system-library-subpath #f))))) (define-syntax define-runtime-lib - (syntax-rules (macosx unix windows ffi-lib) + ;; the ids macosx unix windows don't appear to be bound here, but I added win32 and win64 anyways + (syntax-rules (macosx unix windows win32 win64 ffi-lib) [(_ lib-id [(unix) unix-lib] [(macosx) (ffi-lib mac-lib) ...] @@ -29,6 +30,26 @@ [(unix) null] [(windows) `((so windows-lib) ...)])) + (define lib-id + (if (null? libs) + unix-lib + (for/fold ([v #f]) ([lib (in-list libs)]) + (ffi-lib lib)))))] + [(_ lib-id + [(unix) unix-lib] + [(macosx) (ffi-lib mac-lib) ...] + [(win32) (ffi-lib win32-lib) ...] + [(win64) (ffi-lib win64-lib) ...]) + (begin + (define-runtime-path-list libs + (case (system-type) + [(macosx) '((so mac-lib) ...)] + [(unix) null] + [(windows) + (if win64? + `((so win64-lib) ...) + `((so win32-lib) ...))])) + (define lib-id (if (null? libs) unix-lib diff --git a/collects/racket/draw/unsafe/cairo.rkt b/collects/racket/draw/unsafe/cairo.rkt index 42f5acc05d..4452bd5ae9 100644 --- a/collects/racket/draw/unsafe/cairo.rkt +++ b/collects/racket/draw/unsafe/cairo.rkt @@ -12,16 +12,19 @@ (ffi-lib "libpixman-1.0.dylib") (ffi-lib "libpng14.14.dylib") (ffi-lib "libcairo.2.dylib")] - [(windows) + [(win32) (ffi-lib "zlib1.dll") - (ffi-lib ,(if win64? - "libintl-8.dll" - "zlib1.dll")) (ffi-lib "libpng14-14.dll") (ffi-lib "libexpat-1.dll") - (ffi-lib ,(if win64? - "libfreetype-6.dll" - "freetype6.dll")) + (ffi-lib "freetype6.dll") + (ffi-lib "libfontconfig-1.dll") + (ffi-lib "libcairo-2.dll")] + [(win64) + (ffi-lib "zlib1.dll") + (ffi-lib "libintl-8.dll") + (ffi-lib "libpng14-14.dll") + (ffi-lib "libexpat-1.dll") + (ffi-lib "libfreetype-6.dll") (ffi-lib "libfontconfig-1.dll") (ffi-lib "libcairo-2.dll")]) diff --git a/collects/racket/draw/unsafe/glib.rkt b/collects/racket/draw/unsafe/glib.rkt index 3f5231c947..f38bdf594b 100644 --- a/collects/racket/draw/unsafe/glib.rkt +++ b/collects/racket/draw/unsafe/glib.rkt @@ -17,10 +17,10 @@ [(unix) (ffi-lib "libgmodule-2.0" '("0"))] [(macosx) (ffi-lib "libgmodule-2.0.0.dylib")] - [(windows) - (ffi-lib ,(if win64? - "libgthread-2.0-0.dll" - "libgmodule-2.0-0.dll")) + [(win32) + (ffi-lib "libgmodule-2.0-0.dll")] + [(win64) + (ffi-lib "libgthread-2.0-0.dll") (ffi-lib "libgmodule-2.0-0.dll")]) (define-runtime-lib gobj-lib diff --git a/collects/racket/draw/unsafe/pango.rkt b/collects/racket/draw/unsafe/pango.rkt index 0b095f791b..75ff685126 100644 --- a/collects/racket/draw/unsafe/pango.rkt +++ b/collects/racket/draw/unsafe/pango.rkt @@ -27,15 +27,18 @@ [(unix) (ffi-lib "libpangocairo-1.0" '("0"))] [(macosx) (ffi-lib "libpangocairo-1.0.0.dylib")] - [(windows) - (ffi-lib ,(if win64? - "libintl-8.dll" - "libpangowin32-1.0-0.dll")) + [(win32) (ffi-lib "libpangowin32-1.0-0.dll") (ffi-lib "libexpat-1.dll") - (ffi-lib ,(if win64? - "libfreetype-6.dll" - "freetype6.dll")) + (ffi-lib "freetype6.dll") + (ffi-lib "libfontconfig-1.dll") + (ffi-lib "libpangoft2-1.0-0.dll") + (ffi-lib "libpangocairo-1.0-0.dll")] + [(win64) + (ffi-lib "libintl-8.dll") + (ffi-lib "libpangowin32-1.0-0.dll") + (ffi-lib "libexpat-1.dll") + (ffi-lib "libfreetype-6.dll") (ffi-lib "libfontconfig-1.dll") (ffi-lib "libpangoft2-1.0-0.dll") (ffi-lib "libpangocairo-1.0-0.dll")])