[poppler] CMakeLists.txt cpp/poppler-page-renderer.cpp INSTALL poppler/poppler-config.h.cmake poppler/PSOutputDev.cc poppler/PSOutputDev.h poppler/Stream.cc poppler/Stream.h qt5/src qt6/src test/CMakeLists.txt utils/CMakeLists.txt utils/pdftohtml.cc utils/pdftops.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 16 20:50:51 UTC 2021


 CMakeLists.txt                 |  117 +++++++++++++++++------------------------
 INSTALL                        |    2 
 cpp/poppler-page-renderer.cpp  |   18 ------
 poppler/PSOutputDev.cc         |   37 +++---------
 poppler/PSOutputDev.h          |   10 ---
 poppler/Stream.cc              |    6 --
 poppler/Stream.h               |    4 -
 poppler/poppler-config.h.cmake |    5 -
 qt5/src/poppler-document.cc    |    2 
 qt5/src/poppler-page.cc        |   12 +---
 qt5/src/poppler-private.h      |    4 -
 qt6/src/poppler-document.cc    |    2 
 qt6/src/poppler-page.cc        |   12 +---
 qt6/src/poppler-private.h      |    4 -
 test/CMakeLists.txt            |   22 +++----
 utils/CMakeLists.txt           |   26 ++++-----
 utils/pdftohtml.cc             |   19 ------
 utils/pdftops.cc               |   24 +-------
 18 files changed, 102 insertions(+), 224 deletions(-)

New commits:
commit ce0bd9bf6f41fb058519c99128205da569d83b7c
Author: Hubert Figuiere <hub at figuiere.net>
Date:   Wed Jun 16 20:50:49 2021 +0000

    Remove ENABLE_SPLASH and HAVE_SPLASH (always true)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51676ec8..62fcc529 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,8 +57,7 @@ option(BUILD_QT5_TESTS "Whether to compile the Qt5 test programs." ON)
 option(BUILD_QT6_TESTS "Whether to compile the Qt6 test programs." ON)
 option(BUILD_CPP_TESTS "Whether to compile the CPP test programs." ON)
 option(BUILD_MANUAL_TESTS "Whether to compile manual test programs." ON)
-option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
-option(ENABLE_BOOST "Use boost (when Splash is built)." ON)
+option(ENABLE_BOOST "Use boost (for Splash backend performance)." ON)
 option(ENABLE_UTILS "Compile poppler command line utils." ON)
 option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
 option(ENABLE_GLIB "Compile poppler glib wrapper." ON)
@@ -181,17 +180,14 @@ if (ENABLE_QT6)
   endif()
 endif()
 
-# Check for rendering backends (Splash included unless disabled)
-set(HAVE_SPLASH ${ENABLE_SPLASH})
+# Check for Cairo rendering backend
 macro_optional_find_package(Cairo ${CAIRO_VERSION})
 
-if(ENABLE_SPLASH)
-  find_package(Boost 1.58.0)
-  if(Boost_FOUND)
-    set(USE_BOOST_HEADERS ON)
-  elseif(ENABLE_BOOST)
-    message(FATAL_ERROR "-- Boost recommended for Splash. Use ENABLE_BOOST=OFF to skip.")
-  endif()
+find_package(Boost 1.58.0)
+if(Boost_FOUND)
+  set(USE_BOOST_HEADERS ON)
+elseif(ENABLE_BOOST)
+  message(FATAL_ERROR "-- Boost recommended for Splash. Use ENABLE_BOOST=OFF to skip.")
 endif()
 
 if(CAIRO_FOUND)
@@ -442,29 +438,25 @@ set(poppler_SRCS
   poppler/Rendition.cc
   poppler/CertificateInfo.cc
   poppler/BBoxOutputDev.cc
+  poppler/SplashOutputDev.cc
+  splash/Splash.cc
+  splash/SplashBitmap.cc
+  splash/SplashClip.cc
+  splash/SplashFTFont.cc
+  splash/SplashFTFontEngine.cc
+  splash/SplashFTFontFile.cc
+  splash/SplashFont.cc
+  splash/SplashFontEngine.cc
+  splash/SplashFontFile.cc
+  splash/SplashFontFileID.cc
+  splash/SplashPath.cc
+  splash/SplashPattern.cc
+  splash/SplashScreen.cc
+  splash/SplashState.cc
+  splash/SplashXPath.cc
+  splash/SplashXPathScanner.cc
 )
 set(poppler_LIBS ${FREETYPE_LIBRARIES})
-if(ENABLE_SPLASH)
-  set(poppler_SRCS ${poppler_SRCS}
-    poppler/SplashOutputDev.cc
-    splash/Splash.cc
-    splash/SplashBitmap.cc
-    splash/SplashClip.cc
-    splash/SplashFTFont.cc
-    splash/SplashFTFontEngine.cc
-    splash/SplashFTFontFile.cc
-    splash/SplashFont.cc
-    splash/SplashFontEngine.cc
-    splash/SplashFontFile.cc
-    splash/SplashFontFileID.cc
-    splash/SplashPath.cc
-    splash/SplashPattern.cc
-    splash/SplashScreen.cc
-    splash/SplashState.cc
-    splash/SplashXPath.cc
-    splash/SplashXPathScanner.cc
-  )
-endif()
 if(FONTCONFIG_FOUND)
   set(poppler_LIBS ${poppler_LIBS} ${FONTCONFIG_LIBRARIES})
 endif()
@@ -662,6 +654,7 @@ if(ENABLE_UNSTABLE_API_ABI_HEADERS)
     poppler/Sound.h
     ${CMAKE_CURRENT_BINARY_DIR}/poppler_private_export.h
     ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h
+    poppler/SplashOutputDev.h
     DESTINATION include/poppler)
   install(FILES
     goo/GooTimer.h
@@ -713,33 +706,28 @@ if(ENABLE_UNSTABLE_API_ABI_HEADERS)
       poppler/JPXStream.h
       DESTINATION include/poppler)
   endif()
-  if(ENABLE_SPLASH)
-    install(FILES
-      poppler/SplashOutputDev.h
-      DESTINATION include/poppler)
-    install(FILES
-      splash/Splash.h
-      splash/SplashBitmap.h
-      splash/SplashClip.h
-      splash/SplashErrorCodes.h
-      splash/SplashFTFont.h
-      splash/SplashFTFontEngine.h
-      splash/SplashFTFontFile.h
-      splash/SplashFont.h
-      splash/SplashFontEngine.h
-      splash/SplashFontFile.h
-      splash/SplashFontFileID.h
-      splash/SplashGlyphBitmap.h
-      splash/SplashMath.h
-      splash/SplashPath.h
-      splash/SplashPattern.h
-      splash/SplashScreen.h
-      splash/SplashState.h
-      splash/SplashTypes.h
-      splash/SplashXPath.h
-      splash/SplashXPathScanner.h
-      DESTINATION include/poppler/splash)
-  endif()
+  install(FILES
+    splash/Splash.h
+    splash/SplashBitmap.h
+    splash/SplashClip.h
+    splash/SplashErrorCodes.h
+    splash/SplashFTFont.h
+    splash/SplashFTFontEngine.h
+    splash/SplashFTFontFile.h
+    splash/SplashFont.h
+    splash/SplashFontEngine.h
+    splash/SplashFontFile.h
+    splash/SplashFontFileID.h
+    splash/SplashGlyphBitmap.h
+    splash/SplashMath.h
+    splash/SplashPath.h
+    splash/SplashPattern.h
+    splash/SplashScreen.h
+    splash/SplashState.h
+    splash/SplashTypes.h
+    splash/SplashXPath.h
+    splash/SplashXPathScanner.h
+    DESTINATION include/poppler/splash)
   if(CAIRO_FOUND)
     install(FILES
       poppler/CairoFontEngine.h
@@ -794,10 +782,7 @@ endif()
 # Summarize build options & display warnings for user
 message("Building Poppler with support for:")
 show_end_message("font configuration" ${font_configuration})
-show_end_message_yesno("splash output" ENABLE_SPLASH)
-if(ENABLE_SPLASH)
-  show_end_message_yesno("  use boost" ENABLE_BOOST)
-endif()
+show_end_message_yesno("use boost (Splash)" ENABLE_BOOST)
 show_end_message_yesno("cairo output" CAIRO_FOUND)
 show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
 show_end_message_yesno("qt6 wrapper" ENABLE_QT6)
@@ -818,10 +803,6 @@ show_end_message_yesno("command line utils" ENABLE_UTILS)
 show_end_message_yesno("fuzz target" ENABLE_FUZZER)
 show_end_message("test data dir" ${TESTDATADIR})
 
-if(NOT ENABLE_SPLASH AND NOT CAIRO_FOUND)
-  message("Warning: There is no rendering backend enabled")
-endif()
-
 if(NOT ENABLE_LIBJPEG AND HAVE_DCT_DECODER)
   message("Warning: Using libjpeg is recommended. The internal DCT decoder is unmaintained.")
 endif()
@@ -842,7 +823,7 @@ if(NOT HAVE_JPX_DECODER)
   message("Warning: You're not compiling any JPX decoder. Some files will fail to display properly.")
 endif()
 
-if(ENABLE_SPLASH AND NOT ENABLE_BOOST)
+if(NOT ENABLE_BOOST)
   message("Warning: Use of boost is recommended for better performance.")
 endif()
 
diff --git a/INSTALL b/INSTALL
index 99ac15f7..8bdda843 100644
--- a/INSTALL
+++ b/INSTALL
@@ -44,7 +44,7 @@ Optional Features
 
 eg
 
-  -DENABLE_SPLASH=ON -DBUILD_GTK_TESTS=OFF
+  -DENABLE_LIBCURL=ON -DBUILD_GTK_TESTS=OFF
 
 A list of all options can be display with the commmand:
 
diff --git a/cpp/poppler-page-renderer.cpp b/cpp/poppler-page-renderer.cpp
index 0ef41f8b..5a2ac439 100644
--- a/cpp/poppler-page-renderer.cpp
+++ b/cpp/poppler-page-renderer.cpp
@@ -33,10 +33,8 @@
 #include <poppler-config.h>
 
 #include "PDFDoc.h"
-#if defined(HAVE_SPLASH)
-#    include "SplashOutputDev.h"
-#    include "splash/SplashBitmap.h"
-#endif
+#include "SplashOutputDev.h"
+#include "splash/SplashBitmap.h"
 
 using namespace poppler;
 
@@ -45,10 +43,8 @@ class poppler::page_renderer_private
 public:
     page_renderer_private() : paper_color(0xffffffff), hints(0), image_format(image::format_enum::format_argb32), line_mode(page_renderer::line_mode_enum::line_default) { }
 
-#if defined(HAVE_SPLASH)
     static bool conv_color_mode(image::format_enum mode, SplashColorMode &splash_mode);
     static bool conv_line_mode(page_renderer::line_mode_enum mode, SplashThinLineMode &splash_mode);
-#endif
 
     argb paper_color;
     unsigned int hints;
@@ -56,7 +52,6 @@ public:
     page_renderer::line_mode_enum line_mode;
 };
 
-#if defined(HAVE_SPLASH)
 bool page_renderer_private::conv_color_mode(image::format_enum mode, SplashColorMode &splash_mode)
 {
     switch (mode) {
@@ -98,7 +93,6 @@ bool page_renderer_private::conv_line_mode(page_renderer::line_mode_enum mode, S
     }
     return true;
 }
-#endif
 
 /**
  \class poppler::page_renderer poppler-page-renderer.h "poppler/cpp/poppler-renderer.h"
@@ -263,7 +257,6 @@ image page_renderer::render_page(const page *p, double xres, double yres, int x,
         return image();
     }
 
-#if defined(HAVE_SPLASH)
     page_private *pp = page_private::get(p);
     PDFDoc *pdfdoc = pp->doc->doc;
 
@@ -293,9 +286,6 @@ image page_renderer::render_page(const page *p, double xres, double yres, int x,
 
     const image img(reinterpret_cast<char *>(data_ptr), bw, bh, d->image_format);
     return img.copy();
-#else
-    return image();
-#endif
 }
 
 /**
@@ -308,9 +298,5 @@ image page_renderer::render_page(const page *p, double xres, double yres, int x,
  */
 bool page_renderer::can_render()
 {
-#if defined(HAVE_SPLASH)
     return true;
-#else
-    return false;
-#endif
 }
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index aeba5fce..75bb1859 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -79,11 +79,9 @@
 #include "PreScanOutputDev.h"
 #include "FileSpec.h"
 #include "CharCodeToUnicode.h"
-#ifdef HAVE_SPLASH
-#    include "splash/Splash.h"
-#    include "splash/SplashBitmap.h"
-#    include "SplashOutputDev.h"
-#endif
+#include "splash/Splash.h"
+#include "splash/SplashBitmap.h"
+#include "SplashOutputDev.h"
 #include "PSOutputDev.h"
 #include "PDFDoc.h"
 
@@ -1263,9 +1261,7 @@ void PSOutputDev::init(PSOutputFunc outputFuncA, void *outputStreamA, PSFileType
     clipLLX0 = clipLLY0 = 0;
     clipURX0 = clipURY0 = -1;
 
-#ifdef HAVE_SPLASH
     processColorFormatSpecified = false;
-#endif
 
     // initialize sequential page number
     seqPage = 1;
@@ -1387,7 +1383,6 @@ void PSOutputDev::postInit()
     numTilingPatterns = 0;
     nextFunc = 0;
 
-#ifdef HAVE_SPLASH
     // set some default process color format if none is set
     if (!processColorFormatSpecified) {
         if (level == psLevel1) {
@@ -1395,7 +1390,7 @@ void PSOutputDev::postInit()
         } else if (level == psLevel1Sep || level == psLevel2Sep || level == psLevel3Sep || globalParams->getOverprintPreview()) {
             processColorFormat = splashModeCMYK8;
         }
-#    ifdef USE_CMS
+#ifdef USE_CMS
         else if (getDisplayProfile()) {
             auto processcolorspace = cmsGetColorSpace(getDisplayProfile().get());
             if (processcolorspace == cmsSigCmykData) {
@@ -1406,7 +1401,7 @@ void PSOutputDev::postInit()
                 processColorFormat = splashModeRGB8;
             }
         }
-#    endif
+#endif
         else {
             processColorFormat = splashModeRGB8;
         }
@@ -1424,7 +1419,7 @@ void PSOutputDev::postInit()
               " Resetting processColorFormat to CMYK8.");
         processColorFormat = splashModeCMYK8;
     }
-#    ifdef USE_CMS
+#ifdef USE_CMS
     if (getDisplayProfile()) {
         auto processcolorspace = cmsGetColorSpace(getDisplayProfile().get());
         if (processColorFormat == splashModeCMYK8) {
@@ -1441,7 +1436,6 @@ void PSOutputDev::postInit()
             }
         }
     }
-#    endif
 #endif
 
     // initialize embedded font resource comment list
@@ -3136,7 +3130,6 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
 {
     PreScanOutputDev *scan;
     bool rasterize;
-#ifdef HAVE_SPLASH
     bool useFlate, useLZW;
     SplashOutputDev *splashOut;
     SplashColor paperColor;
@@ -3156,7 +3149,6 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
     bool isOptimizedGray;
     bool overprint;
     SplashColorMode internalColorFormat;
-#endif
 
     if (!postInitDone) {
         postInit();
@@ -3175,7 +3167,6 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
         return true;
     }
 
-#ifdef HAVE_SPLASH
     // get the rasterization parameters
     useFlate = getEnableFlate() && level >= psLevel3;
     useLZW = getEnableLZW();
@@ -3223,12 +3214,12 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
     splashOut = new SplashOutputDev(internalColorFormat, 1, false, paperColor, false, splashThinLineDefault, overprint);
     splashOut->setFontAntialias(rasterAntialias);
     splashOut->setVectorAntialias(rasterAntialias);
-#    ifdef USE_CMS
+#ifdef USE_CMS
     splashOut->setDisplayProfile(getDisplayProfile());
     splashOut->setDefaultGrayProfile(getDefaultGrayProfile());
     splashOut->setDefaultRGBProfile(getDefaultRGBProfile());
     splashOut->setDefaultCMYKProfile(getDefaultCMYKProfile());
-#    endif
+#endif
     splashOut->startDoc(doc);
 
     // break the page into stripes
@@ -3504,7 +3495,7 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
                 isOptimizedGray = false;
             }
             str0->reset();
-#    ifdef ENABLE_ZLIB
+#ifdef ENABLE_ZLIB
             if (useFlate) {
                 if (isOptimizedGray && numComps == 4) {
                     str = new FlateEncoder(new CMYKGrayEncoder(str0));
@@ -3516,7 +3507,7 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
                     str = new FlateEncoder(str0);
                 }
             } else
-#    endif
+#endif
                     if (useLZW) {
                 if (isOptimizedGray && numComps == 4) {
                     str = new LZWEncoder(new CMYKGrayEncoder(str0));
@@ -3619,14 +3610,6 @@ bool PSOutputDev::checkPageSlice(Page *page, double /*hDPI*/, double /*vDPI*/, i
     endPage();
 
     return false;
-
-#else // HAVE_SPLASH
-
-    error(errSyntaxWarning, -1,
-          "PDF page uses transparency and PSOutputDev was built without"
-          " the Splash rasterizer - output may not be correct");
-    return true;
-#endif // HAVE_SPLASH
 }
 
 void PSOutputDev::startPage(int pageNum, GfxState *state, XRef *xrefA)
diff --git a/poppler/PSOutputDev.h b/poppler/PSOutputDev.h
index 549d778d..4a623bf3 100644
--- a/poppler/PSOutputDev.h
+++ b/poppler/PSOutputDev.h
@@ -51,9 +51,7 @@
 #include <unordered_map>
 #include <string>
 
-#ifdef HAVE_SPLASH
-#    include "splash/Splash.h"
-#endif
+#include "splash/Splash.h"
 
 class PDFDoc;
 class XRef;
@@ -309,10 +307,8 @@ public:
     void setRasterResolution(double r) { rasterResolution = r; }
     void setRasterMono(bool b)
     {
-#ifdef HAVE_SPLASH
         processColorFormat = splashModeMono8;
         processColorFormatSpecified = true;
-#endif
     }
 
     void setUncompressPreloadedImages(bool b) { uncompressPreloadedImages = b; }
@@ -349,13 +345,11 @@ public:
     void setEnableLZW(bool b) { enableLZW = b; }
     void setEnableFlate(bool b) { enableFlate = b; }
 
-#ifdef HAVE_SPLASH
     void setProcessColorFormat(SplashColorMode format)
     {
         processColorFormat = format;
         processColorFormatSpecified = true;
     }
-#endif
 
 private:
     void init(PSOutputFunc outputFuncA, void *outputStreamA, PSFileType fileTypeA, char *psTitleA, PDFDoc *doc, const std::vector<int> &pages, PSOutMode modeA, int imgLLXA, int imgLLYA, int imgURXA, int imgURYA, bool manualCtrlA,
@@ -524,10 +518,8 @@ private:
     bool enableLZW; // enable LZW compression
     bool enableFlate; // enable Flate compression
 
-#ifdef HAVE_SPLASH
     SplashColorMode processColorFormat;
     bool processColorFormatSpecified;
-#endif
 
     std::unordered_set<std::string> iccEmitted; // contains ICCBased CSAs that have been emitted
 
diff --git a/poppler/Stream.cc b/poppler/Stream.cc
index cf2d1ed4..886601df 100644
--- a/poppler/Stream.cc
+++ b/poppler/Stream.cc
@@ -69,9 +69,7 @@
 #include "Stream-CCITT.h"
 #include "CachedFile.h"
 
-#ifdef HAVE_SPLASH
-#    include "splash/SplashBitmap.h"
-#endif
+#include "splash/SplashBitmap.h"
 
 #ifdef ENABLE_LIBJPEG
 #    include "DCTStream.h"
@@ -5179,7 +5177,6 @@ bool RGBGrayEncoder::fillBuf()
 // SplashBitmapCMYKEncoder
 //------------------------------------------------------------------------
 
-#ifdef HAVE_SPLASH
 SplashBitmapCMYKEncoder::SplashBitmapCMYKEncoder(SplashBitmap *bitmapA) : bitmap(bitmapA)
 {
     width = (size_t)4 * bitmap->getWidth();
@@ -5251,4 +5248,3 @@ void SplashBitmapCMYKEncoder::setPos(Goffset pos, int dir)
         bufPtr = pos % width;
     }
 }
-#endif
diff --git a/poppler/Stream.h b/poppler/Stream.h
index 97b91dc3..3669d46c 100644
--- a/poppler/Stream.h
+++ b/poppler/Stream.h
@@ -49,9 +49,7 @@
 class GooFile;
 class BaseStream;
 class CachedFile;
-#ifdef HAVE_SPLASH
 class SplashBitmap;
-#endif
 
 //------------------------------------------------------------------------
 
@@ -1445,7 +1443,6 @@ private:
 // pure CMYK colors. In particular for a DeviceN8 bitmap it redacts the spot colorants.
 //------------------------------------------------------------------------
 
-#ifdef HAVE_SPLASH
 class SplashBitmapCMYKEncoder : public Stream
 {
 public:
@@ -1485,6 +1482,5 @@ private:
 
     bool fillBuf();
 };
-#endif
 
 #endif
diff --git a/poppler/poppler-config.h.cmake b/poppler/poppler-config.h.cmake
index 9cd82b00..a8c2b1d4 100644
--- a/poppler/poppler-config.h.cmake
+++ b/poppler/poppler-config.h.cmake
@@ -117,11 +117,6 @@
 #cmakedefine USE_BOOST_HEADERS 1
 #endif
 
-/* Is splash backend available */
-#ifndef HAVE_SPLASH
-#cmakedefine HAVE_SPLASH 1
-#endif
-
 //------------------------------------------------------------------------
 // version
 //------------------------------------------------------------------------
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index 574f2431..bd5a90a1 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -692,9 +692,7 @@ Document::RenderBackend Document::renderBackend() const
 QSet<Document::RenderBackend> Document::availableRenderBackends()
 {
     QSet<Document::RenderBackend> ret;
-#if defined(HAVE_SPLASH)
     ret << Document::SplashBackend;
-#endif
     ret << Document::QPainterBackend;
     ret << Document::ArthurBackend; // For backward compatibility
     return ret;
diff --git a/qt5/src/poppler-page.cc b/qt5/src/poppler-page.cc
index bae438b7..c65e2acf 100644
--- a/qt5/src/poppler-page.cc
+++ b/qt5/src/poppler-page.cc
@@ -61,10 +61,8 @@
 #include <Link.h>
 #include <QPainterOutputDev.h>
 #include <Rendition.h>
-#if defined(HAVE_SPLASH)
-#    include <SplashOutputDev.h>
-#    include <splash/SplashBitmap.h>
-#endif
+#include <SplashOutputDev.h>
+#include <splash/SplashBitmap.h>
 
 #include "poppler-private.h"
 #include "poppler-page-transition-private.h"
@@ -499,7 +497,6 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
     QImage img;
     switch (m_page->parentDoc->m_backend) {
     case Poppler::Document::SplashBackend: {
-#if defined(HAVE_SPLASH)
         SplashColor bgColor;
         const bool overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
         if (overprintPreview) {
@@ -546,9 +543,9 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
         splash_output.setVectorAntialias(m_page->parentDoc->m_hints & Document::Antialiasing ? true : false);
         splash_output.setFreeTypeHinting(m_page->parentDoc->m_hints & Document::TextHinting ? true : false, m_page->parentDoc->m_hints & Document::TextSlightHinting ? true : false);
 
-#    ifdef USE_CMS
+#ifdef USE_CMS
         splash_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
-#    endif
+#endif
 
         splash_output.startDoc(m_page->parentDoc->doc);
 
@@ -559,7 +556,6 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
                                                  (hideAnnotations) ? annotDisplayDecideCbk : nullAnnotCallBack, nullptr, true);
 
         img = splash_output.getXBGRImage(true /* takeImageData */);
-#endif
         break;
     }
     case Poppler::Document::QPainterBackend: {
diff --git a/qt5/src/poppler-private.h b/qt5/src/poppler-private.h
index ed358bf5..73a76667 100644
--- a/qt5/src/poppler-private.h
+++ b/qt5/src/poppler-private.h
@@ -56,9 +56,7 @@
 #include <FontInfo.h>
 #include <OutputDev.h>
 #include <Error.h>
-#if defined(HAVE_SPLASH)
-#    include <SplashOutputDev.h>
-#endif
+#include <SplashOutputDev.h>
 
 #include "poppler-qt5.h"
 #include "poppler-embeddedfile-private.h"
diff --git a/qt6/src/poppler-document.cc b/qt6/src/poppler-document.cc
index 5f760b0e..1fdd5e52 100644
--- a/qt6/src/poppler-document.cc
+++ b/qt6/src/poppler-document.cc
@@ -675,9 +675,7 @@ Document::RenderBackend Document::renderBackend() const
 QSet<Document::RenderBackend> Document::availableRenderBackends()
 {
     QSet<Document::RenderBackend> ret;
-#if defined(HAVE_SPLASH)
     ret << Document::SplashBackend;
-#endif
     ret << Document::QPainterBackend;
     return ret;
 }
diff --git a/qt6/src/poppler-page.cc b/qt6/src/poppler-page.cc
index 23ef1ad9..f7b82b50 100644
--- a/qt6/src/poppler-page.cc
+++ b/qt6/src/poppler-page.cc
@@ -60,10 +60,8 @@
 #include <Link.h>
 #include <QPainterOutputDev.h>
 #include <Rendition.h>
-#if defined(HAVE_SPLASH)
-#    include <SplashOutputDev.h>
-#    include <splash/SplashBitmap.h>
-#endif
+#include <SplashOutputDev.h>
+#include <splash/SplashBitmap.h>
 
 #include "poppler-private.h"
 #include "poppler-page-transition-private.h"
@@ -498,7 +496,6 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
     QImage img;
     switch (m_page->parentDoc->m_backend) {
     case Poppler::Document::SplashBackend: {
-#if defined(HAVE_SPLASH)
         SplashColor bgColor;
         const bool overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
         if (overprintPreview) {
@@ -545,9 +542,9 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
         splash_output.setVectorAntialias(m_page->parentDoc->m_hints & Document::Antialiasing ? true : false);
         splash_output.setFreeTypeHinting(m_page->parentDoc->m_hints & Document::TextHinting ? true : false, m_page->parentDoc->m_hints & Document::TextSlightHinting ? true : false);
 
-#    ifdef USE_CMS
+#ifdef USE_CMS
         splash_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
-#    endif
+#endif
 
         splash_output.startDoc(m_page->parentDoc->doc);
 
@@ -558,7 +555,6 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
                                                  (hideAnnotations) ? annotDisplayDecideCbk : nullAnnotCallBack, nullptr, true);
 
         img = splash_output.getXBGRImage(true /* takeImageData */);
-#endif
         break;
     }
     case Poppler::Document::QPainterBackend: {
diff --git a/qt6/src/poppler-private.h b/qt6/src/poppler-private.h
index 3b8e066f..a9daf765 100644
--- a/qt6/src/poppler-private.h
+++ b/qt6/src/poppler-private.h
@@ -56,9 +56,7 @@
 #include <FontInfo.h>
 #include <OutputDev.h>
 #include <Error.h>
-#if defined(HAVE_SPLASH)
-#    include <SplashOutputDev.h>
-#endif
+#include <SplashOutputDev.h>
 
 #include "poppler-qt6.h"
 #include "poppler-embeddedfile-private.h"
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 09b2e67a..b9251e04 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,18 +1,14 @@
 
-if (ENABLE_SPLASH)
-
-  if (HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
-    set (perf_test_SRCS
-      perf-test.cc
-      perf-test-preview-dummy.cc
-    )
-    add_executable(perf-test ${perf_test_SRCS})
-    target_link_libraries(perf-test poppler)
-    if (LIB_RT_HAS_NANOSLEEP)
-      target_link_libraries(perf-test rt)
-    endif ()
+if (HAVE_NANOSLEEP OR LIB_RT_HAS_NANOSLEEP)
+  set (perf_test_SRCS
+    perf-test.cc
+    perf-test-preview-dummy.cc
+  )
+  add_executable(perf-test ${perf_test_SRCS})
+  target_link_libraries(perf-test poppler)
+  if (LIB_RT_HAS_NANOSLEEP)
+    target_link_libraries(perf-test rt)
   endif ()
-
 endif ()
 
 if (GTK_FOUND)
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index 32fbcb48..ce0ce166 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -7,20 +7,18 @@ set(common_libs
   poppler
 )
 
-if (ENABLE_SPLASH)
-  # pdftoppm
-  set(pdftoppm_SOURCES ${common_srcs}
-    pdftoppm.cc
-    sanitychecks.cc
-  )
-  add_executable(pdftoppm ${pdftoppm_SOURCES})
-  target_link_libraries(pdftoppm ${common_libs})
-  if(LCMS2_FOUND)
-    target_link_libraries(pdftoppm ${LCMS2_LIBRARIES})
-  endif()
-  install(TARGETS pdftoppm DESTINATION bin)
-  install(FILES pdftoppm.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
-endif ()
+# pdftoppm
+set(pdftoppm_SOURCES ${common_srcs}
+  pdftoppm.cc
+  sanitychecks.cc
+)
+add_executable(pdftoppm ${pdftoppm_SOURCES})
+target_link_libraries(pdftoppm ${common_libs})
+if(LCMS2_FOUND)
+  target_link_libraries(pdftoppm ${LCMS2_LIBRARIES})
+endif()
+install(TARGETS pdftoppm DESTINATION bin)
+install(FILES pdftoppm.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
 
 if (HAVE_CAIRO)
   # pdftocairo
diff --git a/utils/pdftohtml.cc b/utils/pdftohtml.cc
index 483b211d..9e0f1230 100644
--- a/utils/pdftohtml.cc
+++ b/utils/pdftohtml.cc
@@ -61,10 +61,8 @@
 #include "PDFDoc.h"
 #include "PDFDocFactory.h"
 #include "HtmlOutputDev.h"
-#ifdef HAVE_SPLASH
-#    include "SplashOutputDev.h"
-#    include "splash/SplashBitmap.h"
-#endif
+#include "SplashOutputDev.h"
+#include "splash/SplashBitmap.h"
 #include "GlobalParams.h"
 #include "PDFDocEncoding.h"
 #include "Error.h"
@@ -138,7 +136,6 @@ static const ArgDesc argDesc[] = { { "-f", argInt, &firstPage, 0, "first page to
                                    { "-fontfullname", argFlag, &fontFullName, 0, "outputs font full name" },
                                    {} };
 
-#ifdef HAVE_SPLASH
 class SplashOutputDevNoText : public SplashOutputDev
 {
 public:
@@ -156,8 +153,6 @@ public:
 
 SplashOutputDevNoText::~SplashOutputDevNoText() = default;
 
-#endif
-
 int main(int argc, char *argv[])
 {
     std::unique_ptr<PDFDoc> doc;
@@ -166,9 +161,7 @@ int main(int argc, char *argv[])
     GooString *author = nullptr, *keywords = nullptr, *subject = nullptr, *date = nullptr;
     GooString *htmlFileName = nullptr;
     HtmlOutputDev *htmlOut = nullptr;
-#ifdef HAVE_SPLASH
     SplashOutputDev *splashOut = nullptr;
-#endif
     bool doOutline;
     bool ok;
     GooString *ownerPW, *userPW;
@@ -353,7 +346,6 @@ int main(int argc, char *argv[])
     }
 
     if ((complexMode || singleHtml) && !xml && !ignore) {
-#ifdef HAVE_SPLASH
         GooString *imgFileName = nullptr;
         // White paper color
         SplashColor color;
@@ -387,13 +379,6 @@ int main(int argc, char *argv[])
         }
 
         delete splashOut;
-#else
-        fprintf(stderr, "Your pdftohtml was built without splash backend support. It is needed for the option you want to use.\n");
-        delete htmlOut;
-        delete htmlFileName;
-        delete fileName;
-        return -1;
-#endif
     }
 
     if (htmlOut->isOk()) {
diff --git a/utils/pdftops.cc b/utils/pdftops.cc
index e77edde3..b055ec96 100644
--- a/utils/pdftops.cc
+++ b/utils/pdftops.cc
@@ -123,16 +123,12 @@ static bool quiet = false;
 static bool printVersion = false;
 static bool printHelp = false;
 static bool overprint = false;
-#ifdef HAVE_SPLASH
 static GooString processcolorformatname;
 static SplashColorMode processcolorformat;
 static bool processcolorformatspecified = false;
-#    ifdef USE_CMS
+#ifdef USE_CMS
 static GooString processcolorprofilename;
 static GfxLCMSProfilePtr processcolorprofile;
-#    endif
-#endif
-#ifdef USE_CMS
 static GooString defaultgrayprofilename;
 static GfxLCMSProfilePtr defaultgrayprofile;
 static GooString defaultrgbprofilename;
@@ -164,13 +160,9 @@ static const ArgDesc argDesc[] = { { "-f", argInt, &firstPage, 0, "first page to
                                    { "-passfonts", argFlag, &fontPassthrough, 0, "don't substitute missing fonts" },
                                    { "-aaRaster", argString, rasterAntialiasStr, sizeof(rasterAntialiasStr), "enable anti-aliasing on rasterization: yes, no" },
                                    { "-rasterize", argString, forceRasterizeStr, sizeof(forceRasterizeStr), "control rasterization: always, never, whenneeded" },
-#ifdef HAVE_SPLASH
                                    { "-processcolorformat", argGooString, &processcolorformatname, 0, "color format that is used during rasterization and transparency reduction: MONO8, RGB8, CMYK8" },
-#    ifdef USE_CMS
-                                   { "-processcolorprofile", argGooString, &processcolorprofilename, 0, "ICC color profile to use as the process color profile during rasterization and transparency reduction" },
-#    endif
-#endif
 #ifdef USE_CMS
+                                   { "-processcolorprofile", argGooString, &processcolorprofilename, 0, "ICC color profile to use as the process color profile during rasterization and transparency reduction" },
                                    { "-defaultgrayprofile", argGooString, &defaultgrayprofilename, 0, "ICC color profile to use as the DefaultGray color space" },
                                    { "-defaultrgbprofile", argGooString, &defaultrgbprofilename, 0, "ICC color profile to use as the DefaultRGB color space" },
                                    { "-defaultcmykprofile", argGooString, &defaultcmykprofilename, 0, "ICC color profile to use as the DefaultCMYK color space" },
@@ -288,7 +280,6 @@ int main(int argc, char *argv[])
         globalParams->setErrQuiet(quiet);
     }
 
-#ifdef HAVE_SPLASH
     if (!processcolorformatname.toStr().empty()) {
         if (processcolorformatname.toStr() == "MONO8") {
             processcolorformat = splashModeMono8;
@@ -305,7 +296,7 @@ int main(int argc, char *argv[])
         }
     }
 
-#    ifdef USE_CMS
+#ifdef USE_CMS
     if (!processcolorprofilename.toStr().empty()) {
         processcolorprofile = make_GfxLCMSProfilePtr(cmsOpenProfileFromFile(processcolorprofilename.c_str(), "r"));
         if (!processcolorprofile) {
@@ -344,7 +335,7 @@ int main(int argc, char *argv[])
             }
         }
     }
-#    endif
+#endif
 
     if (processcolorformatspecified) {
         if (level1 && processcolorformat != splashModeMono8) {
@@ -355,7 +346,6 @@ int main(int argc, char *argv[])
             goto err1;
         }
     }
-#endif
 
 #ifdef USE_CMS
     if (!defaultgrayprofilename.toStr().empty()) {
@@ -484,14 +474,10 @@ int main(int argc, char *argv[])
     if (splashResolution > 0) {
         psOut->setRasterResolution(splashResolution);
     }
-#ifdef HAVE_SPLASH
     if (processcolorformatspecified)
         psOut->setProcessColorFormat(processcolorformat);
-#    ifdef USE_CMS
-    psOut->setDisplayProfile(processcolorprofile);
-#    endif
-#endif
 #ifdef USE_CMS
+    psOut->setDisplayProfile(processcolorprofile);
     psOut->setDefaultGrayProfile(defaultgrayprofile);
     psOut->setDefaultRGBProfile(defaultrgbprofile);
     psOut->setDefaultCMYKProfile(defaultcmykprofile);


More information about the poppler mailing list