Here is the current status (revision 12401) with this project.

The PLplot build and test fundamentally works now with build_projects
so I urge others here to give this a try.  (But note "PLplot
Configuration Limitations" below).

With this revision I sorted out some fairly nasty visibility trouble with 
libharu
for MinGW that was keeping the libharu demos and also PLplot from
building with the MinGW compilers.  So build_projects is already
helping with getting rid of platform bugs for PLplot!

With this revision I also finished up configuration of a PLplot build
that formally depends on builds of libqhull (required by the csironn
library), shapelib (required by the PLplot core), libagg (required by
a subset of the wxwidgets device driver), and libharu (required by the
pdf device driver).  The build_projects project also includes a
working build configuration for wxwidgets.  But that build takes a
long time so right now to reduce debugging time I have excluded that
from the list of PLplot dependencies.

PLplot Configuration Limitations:

It's working well for me (in the limited way below) so I suggest it is
time for others to try it as well.  But note the temporary
configuration in plplot/bp.cmake which refers to a specific location
on my disk drive for the PLplot source tree.  You will have to
change that location to wherever your PLplot source tree is located
on your disk (see the second agenda item below for how I
hope to make this more convenient).

Here is (the somewhat paltry list) of what is currently configured for
PLplot for the MinGW case.

ENABLE_DYNDRIVERS:      ON
DRIVERS_LIST: mem;null;pdf;ps;svg;wingcc;xfig
DEVICES_LIST: mem;null;pdf;ps;svg;wingcc;xfig

Library options:
BUILD_SHARED_LIBS:      ON              PL_DOUBLE:      ON

Optional libraries:
PL_HAVE_QHULL:          ON              WITH_CSA:       ON
PL_HAVE_FREETYPE:                       PL_HAVE_PTHREAD: 
HAVE_AGG:                               HAVE_SHAPELIB:  ON

Language Bindings:
ENABLE_f77:             OFF             ENABLE_f95:             ON
ENABLE_cxx:             ON              ENABLE_java:            OFF
ENABLE_python:          OFF             ENABLE_octave:          OFF
ENABLE_tcl:             OFF             ENABLE_itcl:            OFF
ENABLE_tk:              OFF             ENABLE_itk:             OFF
ENABLE_pdl:             OFF             ENABLE_wxwidgets:       OFF
ENABLE_ada:             ON              ENABLE_d:               OFF
ENABLE_ocaml:           OFF             ENABLE_lua:             OFF
ENABLE_qt:              OFF             ENABLE_pyqt4:           OFF

wxwidgets (and agg) do not (currently) appear above because the
wxwidgets build is currently not a formal dependency of the PLplot
build (simply to save testing time).  However, if you run the
build_wxwidgets target before the build_plplot target you should see
both wxwidgets and agg appear in the above summary.

The "MinGW Makefiles" generator on Wine and the "Unix Makefiles"
generator on Linux have been thoroughly tested for the build_plplot
target (which also automatically builds 4 dependencies of PLplot).  I
have every reason to believe the "MSYS Makefiles" generator will also
work perfectly from previous good partial testing results with it (it
worked perfectly for the 4 dependendies before).  The "Ninja"
generator works only for C and C++ code so large parts of PLplot
(e.g., Fortran, Ada, and D) are automatically excluded by that
limitation, but it worked perfectly previously for the 4 dependencies
of PLplot.  The "NMake Makefiles JOM" generator works (with a
workaround where CMake_C_COMPILER and CMAKE_CXX_COMPILER must be
specified explicitly as cmake options and those options are propagated
to the various build configurations). That approach works perfectly
for the 4 dependencies, but I still need to investigate whether the
"NMake Makefiles JOM" generator has the same limitation as the "Ninja"
generator (i.e., no support for Fortran, Ada, or D).

Next on my build_projects agenda.

(1) configure a build of cmake itself (using the bootstrap method to
completely divorce it from the binary cmake initially used
to configure build_projects).

(2) Configure a build for an svn client.  If successful, this would
allow build_projects to check out the latest trunk version of PLplot
automatically rather than relying on local disk copies (see above) of
the latest trunk version.  This would obviously make it slightly more
convenient to build and test PLplot with build_projects.

(3) Configure a build of swig.  This tool is required before we can
even consider configuring PLplot bindings for python, java, octave, or
lua.

(4) Configure a build of pango/cairo and their dependencies by copying
information from the appropriate jhbuild configuration files using a
python script.  The reason why I am tackling this fairly massive
configuration early in the life of the build_projects project is (a)
because such transformation from the xml jhbuild configuration files
to equivalent <software_project_name>bp.cmake files should be
completely automated and therefore require little effort on my part
other than to implement the required python script; (b) some of those
dependencies (e.g., freetype and pkg-config) are useful beyond just
pango and cairo; and (c) the resulting pango device driver results
should open the eyes of a lot of Windows users to the high quality
results possible with PLplot.

N.B. everything to be built that is on my agenda above is available as
binary downloads. So a legitimate question is why am I bothering with
these build configurations?  The answer is they should be
straightforward to implement (i.e., it should not take a massive
effort from me to finish off these agenda items). More fundamentally,
the motivation for build_projects is to minimize binary downloads with
their accompanying concerns about undetected security attacks on
developers of other open-source projects (for all four agenda items
above) and API/ABI concerns (for the fourth agenda item above).  So it
goes completely against that fundamental motivation for build_projects
to use any software acquired by binary downloads other than the
MinGW/MSYS tool chain.

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
__________________________

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to