On 2015-12-10 12:36-0000 Phil Rosenberg wrote:
> Hi Alan
> Sorry this has taken me a while to look at.
>
> I just want to check what you think the behaviour should be id
> shapelib is off, deprecated is on and the user passes in a map name
> other than one of the ones we supply? The behaviour before we began
> using shapefiles was the same as it is now: If a file with that name
> existed then plplot attempted to read it, if not then plplot reported
> the warning you saw. I think that is still correct behaviour.
> What should probably happen is that the final page of the example
> should not be drawn unless shapelib support is on. To do this we need
> either a compile time or runtime check for whether plplot was built
> with shapelib support. Not wanting to touch the public API I guess a
> #define PL_USE_SHAPEFILES in plConfig.h is required. However I'm not
> sure how to do that. I tried adding
>
> set(PL_USE_SHAPEFILES, TRUE)
^
> In shapelib.cmake and
>
> #cmakedefine PL_USE_SHAPEFILES
>
> in plConfig.h.in, but this doesn't work.
The issue is the comma in the above set command. Commas are extremely
rare (if they exist at all) in CMake syntax. I don't know, but I
suspect the variable name you set was "PL_USE_SHAPEFILES," with
the above command.
I followed up by pushing that comma removal (as of commit 4970505) which
lead to
// Define if built with shapefile support
#define PL_USE_SHAPEFILES
being set in the configured include/plConfig.h in the build tree.
So all is well there, and here are the relevant results in the cache
for my (default) configuration:
software@raven> grep -E "SHAPE|DEPRECATED" CMakeCache.txt
HAVE_SHAPELIB:BOOL=ON
PL_DEPRECATED:BOOL=OFF
SHAPELIB_INCLUDE_DIR:PATH=/usr/include
SHAPELIB_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libshp.so
So that all seems fine, but for this combination I now get the result that
the last page of example 19 does not display any more.
Instead of looking at that issue alone, I suggest you systematically
look at example 19 results for all combinations of HAVE_SHAPELIB and
PL_DEPRECATED
1. -DHAVE_SHAPELIB=OFF, -DPL_DEPRECATED=OFF
2. -DHAVE_SHAPELIB=ON, -DPL_DEPRECATED=OFF
3. -DHAVE_SHAPELIB=OFF, -DPL_DEPRECATED=ON
4. -DHAVE_SHAPELIB=ON, -DPL_DEPRECATED=ON
For PL_DEPRECATED=OFF we should rely completely on the shapelib
approach, and for PL_DEPRECATED=ON we should rely completely on the
traditional non-shapelib approach. So following that philosophy we
should have the following behaviour for example 19:
Case 1 should not plot anything for any page and instead should
emit a warning for each page that shapelib is missing.
Case 2 (the above case I tested) should display all pages with no
warnings (the last page is missing in error for me).
Cases 3 and 4 should display all but the last page using the
deprecated approach, and for the last page should not plot anything
but give a warning message that shapelib and PL_DEPRECATED=OFF are
required for that page.
I hope this clarifies what is needed by example 19 in each of the 4 cases.
Alan
__________________________
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel