On 2017-07-13 09:12+0200 Ole Streicher wrote:

Another point is that TCLDIR is currently set to
/usr/share/plplot5.12.0/tcl, which is not in the package path for
Tcl/Tk. Is there a way to change this to something like
/usr/share/tcltk/plplot5.12.0 [1] with a cmake option so that I
don't need a patch here?

To Ole and Orion:

@Both:

Ole's question (and I think Orion had similar concerns in the past)
inspired me to "open a can of worms" which was to substantially update
how we configured our install locations (see last 4 commits ending
with 4c90970).

Most of the previous relevant build system code was inspired by
autotools and has been untouched for a decade so I decided to rework a
lot of it after using a fairly elegant find .. grep stanza (see commit
message for commit 62e07d4 which is the most important commit
in this series) to determine a complete list of install
location variables (some mandatory, some optional) which are now
created and summarized consistently.

When I first implemented the original code I was quite concerned by
the user mess it would make if a user started changing install
locations inconsistently.  So the version of the code just prior
to this recent series of commits propagated that attitude and
therefore made it impossible to change many of the install-location
variables (e.g., TCL_DIR was unchangeable). But now I have decided to
allow users to change any of these variables any way they like.

So here is a recent summary (much longer than before because I found
many install location variables in our code that were not treated
consistently before) of our install location variables for the case where I
specified the -DTCL_DIR=/whatever1 cmake option.  This is taken
from the latest version of the cmake output:
_______________________________________________

Summary of CMake build system results for PLplot

Install location variables which can be set by the user.  N.B. These
variables are ordered by decreasing degree of generality, with the
_default_ values of the later ones in the list determined by the
values of variables earlier in the list.  So, for example, it is
usually sufficient in the vast majority of cases to just set
CMAKE_INSTALL_PREFIX, and the rest of these variables are adjusted
accordingly (at least for a fresh configuration), and it is rare
indeed that is is necessary for a user to set any variable here whose
name does not start with "CMAKE_INSTALL_".

CMAKE_INSTALL_PREFIX: /home/software/plplot/installcmake
CMAKE_INSTALL_EXEC_PREFIX: /home/software/plplot/installcmake
CMAKE_INSTALL_BINDIR: /home/software/plplot/installcmake/bin
CMAKE_INSTALL_DATADIR: /home/software/plplot/installcmake/share
CMAKE_INSTALL_LIBDIR: /home/software/plplot/installcmake/lib
CMAKE_INSTALL_INCLUDEDIR: /home/software/plplot/installcmake/include
CMAKE_INSTALL_INFODIR: /home/software/plplot/installcmake/share/info
CMAKE_INSTALL_MANDIR: /home/software/plplot/installcmake/share/man
CMAKE_INSTALL_PKG_CONFIG_DIR: /home/software/plplot/installcmake/lib/pkgconfig
DATA_DIR: /home/software/plplot/installcmake/share/plplot5.12.0
LIB_DIR: /home/software/plplot/installcmake/lib
INCLUDE_DIR: /home/software/plplot/installcmake/include/plplot
BIN_DIR: /home/software/plplot/installcmake/bin
DRV_DIR: /home/software/plplot/installcmake/lib/plplot5.12.0/drivers
DOC_DIR: /home/software/plplot/installcmake/share/doc/plplot
INFO_DIR: /home/software/plplot/installcmake/share/info
MAN_DIR: /home/software/plplot/installcmake/share/man
PKG_CONFIG_DIR: /home/software/plplot/installcmake/lib/pkgconfig
FORTRAN_MOD_DIR: /home/software/plplot/installcmake/lib/fortran/modules/plplot
JAR_DIR: /home/software/plplot/installcmake/share/java
JAVAWRAPPER_DIR: /home/software/plplot/installcmake/lib/jni
PYTHON_INSTDIR: /home/software/plplot/installcmake/lib/python3.4/site-packages
PLPLOT_OCTAVE_DIR: /home/software/plplot/installcmake/share/plplot_octave
OCTAVE_M_DIR: /home/software/plplot/installcmake/share/octave/site/m/PLplot
OCTAVE_OCT_DIR: /home/software/plplot/installcmake/lib/octave
TCL_DIR: /whatever1
CMake Warning at cmake/modules/summary.cmake:44 (message):
  TCL_DIR = /whatever1 has prefix inconsistency with CMAKE_INSTALL_PREFIX =
  /home/software/plplot/installcmake
Call Stack (most recent call first):
  CMakeLists.txt:277 (summary)

ADA_INCLUDE_DIR: 
/home/software/plplot/installcmake/share/ada/adainclude/plplotada
ADA_LIB_DIR: /home/software/plplot/installcmake/lib/ada/adalib/plplotada
LUA_DIR: /home/software/plplot/installcmake/lib/lua/5.2/plplot
OCAML_INSTALL_DIR: /home/software/plplot/installcmake/lib/ocaml

Other important CMake variables:
[....]
_______________________________________________

So the user now has complete freedom to make a mess by attempting
to specify inconsistent install location variables, but I am hoping
there won't be too many of such messes because they are warned above in the 
preamble of the
above section of cmake output how to avoid that situation, and they
are warned afterward (but not stopped if they are insistent on
shooting themselves in the foot) at least for the egregious case of
using inconsistent install prefixes for any of these variables as
in this example with TCL_DIR: /whatever1

The above commit was rather intrusive so I gave it a complete
noninteractive and interactive comprehensive test which passed with
only minor dashboard submission issues (see the commit message for
commit 62e07d4 for the details) which I have since fixed.

However, our comprehensive tests do not test the

make DESTDIR=<location of staging area> install

trick used by packagers.  So I would appreciate you doing that
and checking to see if this series of commits has introduced any
problems.

Also, please take a look at the documentation of each of the
cached variables above which appears in CMakeCache.txt in
the build tree, and also let me know if you would prefer any
of the above default values to change.

@Orion:

In particular, does Fedora have policy about where *.tcl files should be
installed that is consistent with Debian policy about that?

The reason I ask is if there is some consensus on that question I
would likely change the default value of TCL_DIR from /usr/share/plplot5.12.0/tcl to that consensus.

@Both:

Also note, that when our build system was first put together in the
autotools era, Rafael insisted on using versioned plplot names
throughout, (e.g, /usr/share/plplot5.12.0)  so I have stuck with that since.  
But I
am not as keen on that as he was so if your consensus (if it exists)
for the TCL_DIR default is unversioned, e.g.,

/usr/share/tcltk/plplot

that would be fine with me.

@Ole:

You sure do ask interesting questions.  :-)

Seriously, though, keep them coming since such
questions play an important role in improving
PLplot as in these last few commits.

As far as I can remember, this current answer from me only leaves the
spelling issues reported by lint (and you) that I need to answer, but
can you recall any further topic between us that I still need to answer?

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
__________________________

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to