]> www.fi.muni.cz Git - evince.git/commitdiff
Make cairo-pdf depedency optional.
authorCarlos Garcia Campos <carlosgc@gnome.org>
Mon, 18 Dec 2006 17:01:34 +0000 (17:01 +0000)
committerCarlos Garcia Campos <carlosgc@src.gnome.org>
Mon, 18 Dec 2006 17:01:34 +0000 (17:01 +0000)
2006-12-18  Carlos Garcia Campos  <carlosgc@gnome.org>
* configure.ac:
* pdf/ev-poppler.cc: (pdf_print_context_free),
(pdf_document_file_exporter_begin),
(pdf_document_file_exporter_do_page):
Make cairo-pdf depedency optional.

ChangeLog
configure.ac
pdf/ev-poppler.cc

index 18d2b559989d9a47f5b9b39a9a587f986d98f15d..331749f2b2ed97bc5de0e01e0d764cffe28dd496 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-12-18  Carlos Garcia Campos  <carlosgc@gnome.org>
+
+       * configure.ac:
+       * pdf/ev-poppler.cc: (pdf_print_context_free),
+       (pdf_document_file_exporter_begin),
+       (pdf_document_file_exporter_do_page):
+
+       Make cairo-pdf depedency optional. 
+
 2006-12-18  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * shell/ev-print-job.c: (idle_print_handler), (ev_print_job_print):
index 2e431cf9b2bb614b4fd020c5936a76d1caffed93..8d170816e302a3673b4912de4e8e0c349b14f5cb 100644 (file)
@@ -206,6 +206,11 @@ if test "x$enable_pdf" = "xyes"; then
            LIBS="$LIBS $FRONTEND_LIBS"
            AC_CHECK_FUNCS(poppler_page_render)
            LIBS=$evince_save_LIBS
+
+           PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no)
+           if test x$enable_cairo_pdf == xyes; then
+                   AC_DEFINE([HAVE_CAIRO_PDF], [1], [defined if cairo-pdf is available])
+            fi
     else
            AC_MSG_WARN("PDF support is disabled since poppler-glib library version $POPPLER_REQUIRED or newer not found")
     fi 
index d4372ad6be7cbb1ffa66488676efc127697c6d52..2e0e46a88a5e900d4181152b3f0d2c5f9bf8b2c8 100644 (file)
@@ -25,7 +25,9 @@
 #include <poppler.h>
 #include <poppler-document.h>
 #include <poppler-page.h>
+#ifdef HAVE_CAIRO_PDF
 #include <cairo-pdf.h>
+#endif
 #include <glib/gi18n.h>
 
 #include "ev-poppler.h"
@@ -51,7 +53,9 @@ typedef struct {
 typedef struct {
        EvFileExporterFormat format;
        PopplerPSFile *ps_file;
+#ifdef HAVE_CAIRO_PDF
        cairo_t *pdf_cairo;
+#endif
 } PdfPrintContext;
 
 struct _PdfDocumentClass
@@ -1425,11 +1429,13 @@ pdf_document_find_iface_init (EvDocumentFindIface *iface)
 
 static const gboolean supported_formats[] = {
        TRUE, /* EV_FILE_FORMAT_PS */
+#ifdef HAVE_CAIRO_PDF
 #ifdef HAVE_POPPLER_PAGE_RENDER
        TRUE, /* EV_FILE_FORMAT_PDF */
 #else
        FALSE, /* EV_FILE_FORMAT_PDF */
 #endif
+#endif
 };
 
 static void
@@ -1442,12 +1448,12 @@ pdf_print_context_free (PdfPrintContext *ctx)
                poppler_ps_file_free (ctx->ps_file);
                ctx->ps_file = NULL;
        }
-
+#ifdef HAVE_CAIRO_PDF
        if (ctx->pdf_cairo) {
                cairo_destroy (ctx->pdf_cairo);
                ctx->pdf_cairo = NULL;
        }
-
+#endif
        g_free (ctx);
 }
 
@@ -1487,11 +1493,13 @@ pdf_document_file_exporter_begin (EvFileExporter      *exporter,
 
                        break;
                case EV_FILE_FORMAT_PDF: {
+#ifdef HAVE_CAIRO_PDF
                        cairo_surface_t *surface;
                        
                        surface = cairo_pdf_surface_create (filename, width, height);
                        ctx->pdf_cairo = cairo_create (surface);
                        cairo_surface_destroy (surface);
+#endif
                }
                        break;
                default:
@@ -1518,7 +1526,9 @@ pdf_document_file_exporter_do_page (EvFileExporter *exporter, EvRenderContext *r
 #ifdef HAVE_POPPLER_PAGE_RENDER
                        poppler_page_render (poppler_page, ctx->pdf_cairo);
 #endif
+#ifdef HAVE_CAIRO_PDF
                        cairo_show_page (ctx->pdf_cairo);
+#endif
                        break;
                default:
                        g_assert_not_reached ();