On 2006-12-30 11:44+0100 Werner Smekal wrote:

> Hi,
>
> since it's especially for Windows more and more complicated to have all
> 3rd party libraries included in the plplot library I would propose the
> following solution.
>
> We make an additional 3rd party library package, which contains the
> source files, header files and a custom CMakeLists.txt of all libraries
> we want to include (agg, freetype, libharu, cd, qhull,...). The
> structure would look like this:
>
> plplot
>   ----> lib
>          -->agg2.4
>               ---->CMakeLists.txt
>               ---->src
>               ---->include
>          -->cd1.3
> etc.
>
> The maintainance of this package would not be much effort, since we
> wouldn't need to always include the newest version of a library - it's
> just libraries known to work with plplot. And some libraries (qhull,cd)
> aren't updated anyway.
>
> Than we would need to change the Findxxx.cmake files a little bit:
>
> e.g. FindCD.cmake:
>
> find_path(CD_INCLUDE_DIR cd.h /usr/local/include /usr/include)
>
> if(CD_INCLUDE_DIR)
> [...]
> else(CD_INCLUDE_DIR)
> # library not found, see if user installed 3rd party package
> find_path(CML_DIR CMakeLists.txt ${CMAKE_SRC_DIR}/lib/cd1.3)
>   if(CML_DIR)
>     # yes?, so we compile it on our own
>     subdirectory(CML_DIR)
>     set(CD_INCLUDE_PATH ...)
>     [...]
>   endif(CML_DIR)
> endif(CD_INCLUDE_DIR)
> [...]
>
> This script won't work exactly like that, but you get the idea. This
> would have several advantages:
>
> 1) Very easy than for Windows users
> 2) if the system provides the libraries, we don't compile it on our own
> 3) if the user provides newer libraries, we don't compile it on our own
> 4) we have complete control of the library (shared, static, debug etc.)
> 5) Do get most features of plplot, you have only to untar the 3rd party
> package and you're ready
> 6) For users who don't use the 3rd party package there is no change at all
>
> disadvantage:
> 1) Maintain the package, but I think it's really low effort as soon as
> it is setup.
> 2) gd and wxwidgets can't be included that way.
>
> What do you think?

If you are willing to take on the responsibility of preparing and
maintaining a separate 3rd-party library source package release (presumably
a zip file) which you would separately release at our SourceForge file
release area and which the the windows user would unzip on top of their
PLplot source tree for an integrated 3rd-party and PLplot build, then that
would be fine with me.

However, I have just been struck with an alternative idea that might be even
better; make the 3rd-party build completely independent of PLplot and
provide not only a 3rd-party source release but also a binary release (which
keeps the 3rd-party libraries out of the PLplot binary release, although
they would have a common install location). The reason why I suggest this
alternative is I am a strong believer in the Unix philosophy that separate
is beautiful and over-integration can cause problems.  For example, with the
original integrated build proposal, the user can really screw up if they
unzip the 3rd-party source package into the wrong location.

Note, the idea of a separate 3rd-party build and binary release is only a
possibility that I want to draw to your attention, and if you (and Arjen)
feel the integrated 3rd-party and PLplot build approach and binary release
for windows users will be easier to support, than I am willing to go along
with it since you will be the ones doing that support. :-)

By the way, when you prepare the 3rd-party source release, I assume you will
personally download the 3rd-party source code version that you want to
include in the release rather than attempting to maintain that 3rd-party
source code as part of our CVS.  However, its fine with me if you maintain
the CMake infrastructure (CMakeList.txt files, etc.) for the 3rd-party
software as part of our CVS (like you do now in cmake/external for some of
the 3rd-party libraries).

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); PLplot scientific plotting software
package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the
Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to