On Fri 2008-11-07 11:44, Eric Noulard wrote: > 2008/11/7 Jed Brown <[EMAIL PROTECTED]>: > > Are such environments not a goal of CMake? > > As far as I know there is not so much systems where the simultaneous > installation of different version of the same software is cleanly handled.
I agree, it's tricky and often a mess. > However I don't really think that this is the job of CMake. [snip] > My current opinion is the "multiple version" issue should be handle > by a "CRAY module"-like tool and not by CMake itself. > > If the underlying tool is efficient then CMake FIND module should find > the appropriate version. Thank you Eric, this greatly clarifies some design decisions. May I interpret this to mean that CMake does not intend to be concerned with finding the `right' version of a library, it is the job of the OS to make the system paths find the correct versions? Thus if CMake finds any version of a library, it's assumed correct. This does make life easier for module writers and makes many of my concerns about directory paths being parsed incorrectly moot. Unfortunately not every environment with multiple versions has the `module' tool and users will expect to be able to have a reasonable way to find specific versions of software. My development box has 4 MPI implementations and 4-16 (ABI-incompatible) versions of many libraries. One of these is the default stable version installed by my Linux distribution's package manager. To build against a non-standerd version, I should ideally be able to specify one path for each interface package (library that my project calls into directly). That this is profoundly broken came as a surprise to me since this is how most other automatic configuration packages work (albeit imperfectly). It's much clearer if CMake never intends to support this usage. With the `module' tool, I would load the appropriate modules, run cmake without any parameters, and (if the `module'-modules were set up with appropriate discipline) get a working build. I agree that this is nicer for everyone (provided `module' is available), but perhaps the CMake documentation could be explicit that you need to do something external to ensure that `incorrect' versions of libraries cannot be found by the system. Jed
pgpBB5Xpaw5vD.pgp
Description: PGP signature
_______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake