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
