// Returns NULL if version is certainly greater or equal than major.minor.micro // Returns string describing the error if version is lower than // major.minor.micro OR it cannot be determined and one should not rely on the // availability of pango version major.minor.micro, nor the non-availability const gchar *wx_pango_version_check (int major, int minor, int micro) { // NOTE: you don't need to use this macro to check for Pango features // added in pango-1.4 or earlier since GTK 2.4 (our minimum requirement // for GTK lib) required pango 1.4... #ifdef __WXGTK3__ return pango_version_check(major, minor, micro); #elif defined(PANGO_VERSION_MAJOR) if (!gtk_check_version (2,11,0)) { // GTK+ 2.11 requires Pango >= 1.15.3 and pango_version_check // was added in Pango 1.15.2 thus we know for sure the pango lib we're // using has the pango_version_check function: return pango_version_check (major, minor, micro); } return "can't check"; #else // !PANGO_VERSION_MAJOR wxUnusedVar(major); wxUnusedVar(minor); wxUnusedVar(micro); return "too old headers"; #endif }
static gchar * sanity_check_pango (void) { #define PANGO_REQUIRED_MAJOR 1 #define PANGO_REQUIRED_MINOR 29 #define PANGO_REQUIRED_MICRO 4 const gchar *mismatch = pango_version_check (PANGO_REQUIRED_MAJOR, PANGO_REQUIRED_MINOR, PANGO_REQUIRED_MICRO); if (mismatch) { const gint pango_major_version = pango_version () / 100 / 100; const gint pango_minor_version = pango_version () / 100 % 100; const gint pango_micro_version = pango_version () % 100; return g_strdup_printf ("%s\n\n" "GIMP requires Pango version %d.%d.%d or later.\n" "Installed Pango version is %d.%d.%d.\n\n" "Somehow you or your software packager managed\n" "to install GIMP with an older Pango version.\n\n" "Please upgrade to Pango version %d.%d.%d or later.", mismatch, PANGO_REQUIRED_MAJOR, PANGO_REQUIRED_MINOR, PANGO_REQUIRED_MICRO, pango_major_version, pango_minor_version, pango_micro_version, PANGO_REQUIRED_MAJOR, PANGO_REQUIRED_MINOR, PANGO_REQUIRED_MICRO); } #undef PANGO_REQUIRED_MAJOR #undef PANGO_REQUIRED_MINOR #undef PANGO_REQUIRED_MICRO return NULL; }