diff options
author | Billy Biggs <bbiggs> | 2005-11-16 17:08:48 +0000 |
---|---|---|
committer | Billy Biggs <bbiggs> | 2005-11-16 17:08:48 +0000 |
commit | 01fdd7e3f1adc64a8d8c4b18817b82b5b7754553 (patch) | |
tree | 4089f8501d6bacbad01b587fb541dc05d8534c63 /bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt | |
parent | 1e66a3774d23e73cdad888246db28ce41cd0dd65 (diff) | |
download | eclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.tar.gz eclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.tar.xz eclipse.platform.swt-01fdd7e3f1adc64a8d8c4b18817b82b5b7754553.zip |
110924 - Allow for providing a fallback cairo library for distributions without cairo
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java index 41842061e3..363b22fa20 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/cairo/org/eclipse/swt/internal/cairo/Cairo.java @@ -20,10 +20,23 @@ * ***** END LICENSE BLOCK ***** */ package org.eclipse.swt.internal.cairo; -import org.eclipse.swt.internal.Library; +import org.eclipse.swt.internal.*; +import org.eclipse.swt.internal.gtk.*; public class Cairo { static { + // Check if cairo is available on the system. + byte[] libcairo = Converter.wcsToMbcs(null, "libcairo.so.2", true); + int /*long*/ libcairo_handle = OS.dlopen(libcairo, 1); + if (libcairo_handle != 0) { + OS.dlclose(libcairo_handle); + } else { + try { + System.loadLibrary("cairo-swt"); + } catch (UnsatisfiedLinkError e) { + // Ignore problems loading the fallback library. + } + } Library.loadLibrary("swt-cairo"); } |