Dne Po 7. května 2012 11:07:52, Riccardo Magliocchetti napsal(a):
> Hello Tomáš,
> 
> Another possibility is to add some ifdefery in vcl/Library_vcl.mk
> instead of providing a stub CUPSManager. This would match other
> platforms already building with test_cups=no.
> 

Good idea. Altho it is more changed lines it looks more "clean".

So any other suggestions for this, or can I go ahead?

Cheers

Tom
>From 62cdd0f6621b11e2fb5eedc01b7672fe4be9ae46 Mon Sep 17 00:00:00 2001
From: Tomas Chvatal <tchva...@suse.cz>
Date: Mon, 7 May 2012 13:46:09 +0200
Subject: [PATCH] Enable configure switch for cups

This allows us not to have cups during the build time of libreoffice.

Commit is based of patch from Dave Flogeras <dfloge...@gmail.com>.

Change-Id: I32a14eb6e7bdd13de1a737d4798c852a830ae326

Signed-off-by: Tomas Chvatal <tchva...@suse.cz>
---
 config_host.mk.in                     |    1 +
 configure.in                          |   12 ++++++++++++
 vcl/Library_vcl.mk                    |    9 +++++++--
 vcl/null/printerinfomanager.cxx       |   10 ++++++++++
 vcl/unx/generic/printer/ppdparser.cxx |    2 +-
 5 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/config_host.mk.in b/config_host.mk.in
index 65affa9..fd5e8a0 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -98,6 +98,7 @@ export DPKG=@DPKG@
 export DYNAMIC_CRT=@DYNAMIC_CRT@
 export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@
 export ENABLE_CRASHDUMP=@ENABLE_CRASHDUMP@
+export ENABLE_CUPS=@ENABLE_CUPS@
 export ENABLE_DBUS=@ENABLE_DBUS@
 export ENABLE_DIRECTX=@ENABLE_DIRECTX@
 export ENABLE_EVOAB2=@ENABLE_EVOAB2@
diff --git a/configure.in b/configure.in
index 43a6544..91c871d 100644
--- a/configure.in
+++ b/configure.in
@@ -842,6 +842,11 @@ AC_ARG_ENABLE(nsplugin,
         [Do not build nsplugin extension for browser embedding.])
 )
 
+AC_ARG_ENABLE(cups,
+    AS_HELP_STRING([--disable-cups],
+        [Do not build cups support.])
+)
+
 AC_ARG_ENABLE(ccache,
     AS_HELP_STRING([--disable-ccache],
         [Do not try to use ccache automatically.
@@ -3597,6 +3602,13 @@ fi
 
 dnl check for cups support
 dnl ===================================================================
+if test "$enable_cups" = "no"; then
+    test_cups=no
+    ENABLE_CUPS="NO"
+else
+    ENABLE_CUPS="YES"
+fi
+AC_SUBST(ENABLE_CUPS)
 if test "$test_cups" = "yes"; then
     AC_MSG_CHECKING([whether cups support is present])
     AC_CHECK_LIB([cups], [cupsPrintFiles], [:])
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 92e35a2..05be361 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -445,10 +445,15 @@ $(eval $(call gb_Library_add_defs,vcl,\
 $(eval $(call gb_Library_add_exception_objects,vcl,\
 	$(vcl_generic_code) \
     vcl/unx/generic/plugadapt/salplug \
-    vcl/unx/generic/printer/cupsmgr \
     vcl/unx/generic/printer/jobdata \
     vcl/unx/generic/printer/ppdparser \
-    vcl/unx/generic/printer/printerinfomanager \
+    $(if $(filter YES,$(ENABLE_CUPS)),\
+        vcl/unx/generic/printer/cupsmgr \
+        vcl/unx/generic/printer/printerinfomanager \
+    ) \
+    $(if $(filter NO,$(ENABLE_CUPS)),\
+        vcl/null/printerinfomanager \
+    ) \
 ))
 $(eval $(call gb_Library_use_externals,vcl,\
 	fontconfig \
diff --git a/vcl/null/printerinfomanager.cxx b/vcl/null/printerinfomanager.cxx
index 526a936..d606c41 100644
--- a/vcl/null/printerinfomanager.cxx
+++ b/vcl/null/printerinfomanager.cxx
@@ -84,6 +84,16 @@ void PrinterInfoManager::initialize()
     // ???
 }
 
+bool PrinterInfoManager::isCUPSDisabled() const
+{
+    return m_bDisableCUPS;
+}
+
+void PrinterInfoManager::setCUPSDisabled( bool bDisable )
+{
+    // cups is already disabled in config so do nothing
+}
+
 void PrinterInfoManager::listPrinters( ::std::list< OUString >& rList ) const
 {
     rList.clear();
diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx
index e555396..9acee56 100644
--- a/vcl/unx/generic/printer/ppdparser.cxx
+++ b/vcl/unx/generic/printer/ppdparser.cxx
@@ -655,7 +655,7 @@ const PPDParser* PPDParser::getParser( const String& rFile )
         PrinterInfoManager& rMgr = PrinterInfoManager::get();
         if( rMgr.getType() == PrinterInfoManager::CUPS )
         {
-#if !defined(ANDROID) && !defined(LIBO_HEADLESS)
+#if defined HAVE_CUPS_H
             pNewParser = const_cast<PPDParser*>(static_cast<CUPSManager&>(rMgr).createCUPSParser( aFile ));
 #endif
         }
-- 
1.7.3.4

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to