From: Arnaud D. <ada...@ap...> - 2015-01-22 09:35:52
|
On 1/22/2015 10:12 AM, Alan W. Irwin wrote: > On 2015-01-21 23:09+0100 Arnaud Darmont wrote: > >> Alan, >> >> thank you for the detailed answer. Cmake is what i'm trying to use. >> >> As i understand this won't be easy and i fear that there will be >> deployment difficulties on customer systems. My goal would be to >> distribute an executable of the final software along with the source >> so that they can just run it without any installation. Will in the >> end PLplot allow for this or is it the wrong library? > > I think your first priority should be to get the PLplot build to work > on either Cygwin or MinGW-w64/MSYS2. Both of those platforms should > provide a full suite of external libraries that PLplot depends upon to > provide complete functionality. We are not going to deploy anything like this on our customer's machines. It has to run in a windows install without any specific external requirements. > Those external libraries include > libqhull and shapelib (both needed by the core PLplot library for full > functionality), libharu (needed for the pdf device driver), the > wxwidgets library (needed by the PLplot wxwidgets device driver), Qt5 > (needed for the qt device driver), and the Pango/Cairo subset of GTK+ > (needed for the cairo device driver). Note, that qt and cairo are > currently our best device drivers, and one of our developers is > working hard to bring our wxwidgets device driver up to that same > level of quality. I would avoid MinGW/MSYS because it supplies few > libraries and therefore your PLplot build there will generate an > extremely lite version of PLplot that doesn't have the capabilities > (e.g., none of the wxwidgets, qt, or cairo device drivers) provided by > the equivalent PLplot build on those other two Windows platforms. > > If you like the PLplot capabilities you find on either Cygwin or > MinGW-w64/MSYS2, then I believe the answer to the deployment issue you > brought up above is to build your software package against a static > version of PLplot (which should be trivial to arrange) which in turn > has been built against static versions of the external libraries > (non-trivial to arrange). If you can do that, it virtually solves your > deployment issues since you don't have to worry about version > incompatibilities of ABI incompatibility issues with shared external > libraries your users may or may not have installed, i.e., no dll-hell > issues. > > My understanding is that CMake does have a method to force linking > with static external libraries if they are available rather than > external shared libraries (its default preference). But I have never > actually tried that myself, and you would likely have to ask on the > CMake list or google for how to do it. > > In sum, my advice to solve the deployment issue is to abandon > MinGW/MSYS (due to lack of external libraries) and try either/both > MinGW-w64/MSYS2 or else Cygwin. If satisfied with one of those verify > it has static versions of the necessary external libraries that you > can install. Then figure out how to convince CMake to preferentially > use static libraries for linking, and build a static version of PLplot > against those external libraries. Then statically link your software > with > that static PLplot for your deployment. > I will look for another plotting library. It will be less work. > 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 > __________________________ > > -- APHESA Arnaud Darmont CEO Direct Tel: +32 (0)4 365 06 80 Mobile: +32 (0)472 643 620 General Tel: +32 (0)4 366 18 70 Fax: +32 (0)4 366 08 10 Rue de Lorcé, 39 B-4920 HARZE BELGIUM www.aphesa.com Twitter: @Aphesa |