Blob Blame History Raw
--- GDCM-3.0.1/Applications/Cxx/CMakeLists.txt
+++ GDCM-3.0.1/Applications/Cxx/CMakeLists.txt
@@ -72,6 +72,14 @@ if(GDCM_USE_SYSTEM_POPPLER)
   if(LIBPOPPLER_GLOBALPARAMS_CSTOR_HAS_PARAM)
     list(APPEND libpoppler_flags -DLIBPOPPLER_GLOBALPARAMS_CSTOR_HAS_PARAM)
   endif()
+  if(NOT LIBPOPPLER_GLOBALPARAMS_CSTOR_HAS_PARAM)
+    CHECK_CXX_SOURCE_COMPILES(
+      "\#include <poppler/GlobalParams.h>\nint main() { globalParams = new GlobalParams(); return 0;}"
+      LIBPOPPLER_GLOBALPARAMS_IS_NOT_UNIQUE_PTR)
+    if(NOT LIBPOPPLER_GLOBALPARAMS_IS_NOT_UNIQUE_PTR)
+      list(APPEND libpoppler_flags -DLIBPOPPLER_GLOBALPARAMS_IS_UNIQUE_PTR)
+    endif()
+  endif()
   CHECK_CXX_SOURCE_COMPILES(
     "\#include <poppler/PDFDoc.h>\nint main() { PDFDoc d((GooString*)NULL,(GooString*)NULL,(GooString*)NULL); d.getPDFVersion(); return 0;}"
     LIBPOPPLER_PDFDOC_HAS_PDFVERSION)
--- GDCM-3.0.1/Applications/Cxx/gdcminfo.cxx
+++ GDCM-3.0.1/Applications/Cxx/gdcminfo.cxx
@@ -510,11 +510,15 @@ static int ProcessOneFile( std::string c
     std::string moddate;
 
     UnicodeMap *uMap;
+#ifdef LIBPOPPLER_GLOBALPARAMS_IS_UNIQUE_PTR
+  globalParams = std::make_unique<GlobalParams>();
+#else
 #ifdef LIBPOPPLER_GLOBALPARAMS_CSTOR_HAS_PARAM
     globalParams = new GlobalParams(0);
 #else
     globalParams = new GlobalParams();
 #endif
+#endif
     uMap = globalParams->getTextEncoding();
 
     Object info;
--- GDCM-3.0.1/Applications/Cxx/gdcmpdf.cxx
+++ GDCM-3.0.1/Applications/Cxx/gdcmpdf.cxx
@@ -336,11 +336,15 @@ int main (int argc, char *argv[])
   UnicodeMap *uMap;
   ownerPW = NULL;
   userPW = NULL;
+#ifdef LIBPOPPLER_GLOBALPARAMS_IS_UNIQUE_PTR
+  globalParams = std::make_unique<GlobalParams>();
+#else
 #ifdef LIBPOPPLER_GLOBALPARAMS_CSTOR_HAS_PARAM
   globalParams = new GlobalParams(0);
 #else
   globalParams = new GlobalParams();
 #endif
+#endif
   uMap = globalParams->getTextEncoding();
 
   //const char *filename = argv[1];