<div dir="ltr"><div>Thanks Jeff. <br></div><div>Process details matter, I missed that Poppler source was actually at gitlab rather than my github based clone, so rebuilt poppler, using CMAKE this time.</div><div>[100%] Built target poppler-render<br>Install the project...<br>-- Install configuration: "Release"<br>-- Installing: /usr/local/lib/libpoppler.so.119.0.0<br>-- Up-to-date: /usr/local/lib/libpoppler.so.119<br>-- Set runtime path of "/usr/local/lib/libpoppler.so.119.0.0" to "/usr/local/lib"</div><div><br></div><div>which in the context of the patch 089f84b:</div><div><table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-context gmail-js-file-line"><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">  <span class="gmail-pl-k">if</span> (<span class="gmail-pl-s">"<span class="gmail-pl-smi">${POPPLER_VERSION_MINOR}</span>"</span> <span class="gmail-pl-k">MATCHES</span> <span class="gmail-pl-s">"0?[0-9]+"</span>)</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-context gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">    <span class="gmail-pl-c1">string</span>(<span class="gmail-pl-k">REGEX</span> <span class="gmail-pl-k">REPLACE</span> <span class="gmail-pl-s">"0?([0-9]+)"</span> <span class="gmail-pl-s">"<span class="gmail-pl-cce">\\</span>1"</span> POPPLER_VERSION_MINOR <span class="gmail-pl-smi">${POPPLER_VERSION_MINOR}</span>)</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-context gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">  <span class="gmail-pl-k">endif</span> ()</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-addition gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">  <span class="gmail-pl-k">if</span> (POPPLER_VERSION_MAJOR <span class="gmail-pl-k">GREATER</span> 21)</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-addition gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">    <span class="gmail-pl-c1">target_compile_features</span>(gdal_PDF <span class="gmail-pl-k">PRIVATE</span> cxx_std_17)</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-addition gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">  <span class="gmail-pl-k">endif</span> ()</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-context gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">  <span class="gmail-pl-c1">target_compile_definitions</span>(gdal_PDF <span class="gmail-pl-k">PRIVATE</span> -DHAVE_POPPLER -DPOPPLER_MAJOR_VERSION=<span class="gmail-pl-smi">${POPPLER_VERSION_MAJOR}</span></span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
      <table class="gmail-diff-table gmail-js-diff-table gmail-tab-size"><tbody><tr class="gmail-show-top-border"><td class="gmail-blob-code gmail-blob-code-context gmail-js-file-line">    <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">                                              -DPOPPLER_MINOR_VERSION=<span class="gmail-pl-smi">${POPPLER_VERSION_MINOR}</span>)</span></td>
</tr>



    <tr class="gmail-show-top-border">
    </tr></tbody></table>
          <span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><span class="gmail-pl-k">endif</span> ()</span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">and happily, 119 remains > 21, so poppler patch 089f84b worked.  Thereafter, MrSid driver cratered on some 2004 Lizardtech defines in lt_platform.h that defined possible GCC compilers topping out at <= 5 (rather than a future unimaginable 9 or 12). Removing a desire for MrSid, in this instance through ccmake,<br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">Re-clone gdal and we get to this, new, somewhat indecipherable, not quite there, but achingly close:</span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">[ 89%] Building CXX object gcore/mdreader/CMakeFiles/gcore_mdreader.dir/reader_spot.cpp.o<br>[ 89%] Built target gcore_mdreader<br>CMakeFiles/GDAL.dir/build.make:2661: *** target pattern contains no '%'.  Stop.<br>make[1]: *** [CMakeFiles/Makefile2:4871: CMakeFiles/GDAL.dir/all] Error 2</span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">And from there I guess I will attempt to chug along. <br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">Losing MrSid is a disappointment as the earliest USGS experimental photogrammetry data available, albeit without sufficient viable GPCs (for local areas as many were lost through time), was predicated on coastal overflights related to beach erosion control efforts/federal expenses from 100 years ago. To my view, sufficient GPCs still exist within and across the dataset, that it could serve as an historic measure, with an appropriate eye toward the geographic basis that remaining GPCs indicate. But it will no longer be local area, though that is what a certain client wants.</span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">Happily, or unhappily, my above error reveals some 8 google responses, with none censored to show most relevant.</span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">And, as CMAKE is our fate, and gdal is our best tool, we will endeavor to persevere, so we can also get sf in R to load again.<br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass">Chris <br></span></div><div><span class="gmail-blob-code-inner gmail-blob-code-marker gmail-js-code-nav-pass"><br></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 3, 2022 at 3:26 PM Jeff McKenna <<a href="mailto:jmckenna@gatewaygeomatics.com">jmckenna@gatewaygeomatics.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Chris,<br>
<br>
I'm not sure if this is exactly related to your issue, but here are my <br>
thoughts:<br>
<br>
I do know that the recent poppler release relies on the C++17 standard, <br>
and there was a recent change in GDAL to accommodate this (see <br>
<a href="https://github.com/OSGeo/gdal/issues/5071" rel="noreferrer" target="_blank">https://github.com/OSGeo/gdal/issues/5071</a> ).<br>
<br>
In my case (for the Windows / MS4W community) I had to patch GDAL 3.4.1 <br>
for this, but in your case you might want to grab GDAL-master from git <br>
as that will be easier to handle the new poppler.<br>
<br>
<br>
-jeff<br>
<br>
<br>
<br>
-- <br>
Jeff McKenna<br>
GatewayGeo: Developers of MS4W, MapServer Consulting and Training<br>
co-founder of FOSS4G<br>
<a href="http://gatewaygeo.com/" rel="noreferrer" target="_blank">http://gatewaygeo.com/</a><br>
<br>
<br>
<br>
<br>
On 2022-03-03 4:03 p.m., chris english wrote:<br>
> Hi,<br>
> I am a weak link when it comes to CMAKE. Geos-3.10.2 and PROJ-8.2.1 were <br>
> a breeze nonetheless.  A source build of libpoppler.so.119 via <br>
> ./configure went smoothly.<br>
> <br>
> I have consistently failed at ogrpdflayer (well, only four times so far) <br>
> on 'optional', that is a C++17 thing. <-  an example of a feeble <br>
> understanding of build process requirements.<br>
> <br>
> Recklessly editing lines in CMakeLists.txt:<br>
> 41 # check compiler and set preferences.<br>
> 42 set(CMAKE_CXX_STANDARD 17)<br>
> [ 44%] Built target gdal_STACIT<br>
> [ 44%] Building CXX object <br>
> frmts/pdf/CMakeFiles/gdal_PDF.dir/ogrpdflayer.cpp.o<br>
> <br>
> but further along we run across c++17 be contra-indicated as to<br>
> <br>
> [ 49%] Built target gdal_PostGISRaster<br>
> [ 49%] Building CXX object <br>
> frmts/dods/CMakeFiles/gdal_DODS.dir/dodsdataset2.cpp.o<br>
> <br>
> from /home/chris/gdal/frmts/dods/dodsdataset2.cpp:38:<br>
> /usr/local/include/libdap/RCReader.h:114:16: error: ISO C++17 does not <br>
> allow dynamic exception specifications<br>
>    114 |     RCReader() throw(Error);<br>
> <br>
> which leads to a set by individual target approach as is said to be <br>
> available<br>
> <br>
> set_property(TARGETtgtPROPERTYCXX_STANDARD17)<br>
> set_property(TARGETtgtPROPERTYCXX_STANDARD11)<br>
> <br>
> and were this the solution, what would it look like and where might it <br>
> reside in say<br>
> <br>
> CMakeCache.txt, or have I just gotten this all wrong, as I expect I have.<br>
> <br>
> Ubuntu 20.04, gcc-9.3.0, and happy to have broken through to 49%, but <br>
> wouldn't<br>
> <br>
> that's 99% good news.<br>
> <br>
> Chris<br>
> <br>
> <br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
</blockquote></div>