From: <p.d...@gm...> - 2017-07-22 10:43:02
|
Just to check Alan, the mention of grep and all th linux centric paths listed made me wonder how (if at all) this affects Windows builds? Phil Sent from my Windows 10 phone From: Alan W. Irwin Sent: 22 July 2017 10:00 To: Ole Streicher; Orion Poplawski; PLplot development list Subject: [Plplot-devel] Install location logic substantially updated 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 Plp...@li... https://lists.sourceforge.net/lists/listinfo/plplot-devel |