Thanks Michael, it's good to hear I'm not alone :-)

On Sun 2008-11-09 20:16, Michael Jackson wrote:
> So basically if you don't have the HDF5_INSTALL env variable set then my 
> module probably will not find it, which is good in that instead of  
> getting a wrong version of HDF5 you just don't get any at all.

I also use NO_DEFAULT_PATH in my modules to help prevent an inconsistent
configuration.  I think the optimal semantic is usually that if
HDF5_INSTALL is not set, it tries default paths, but if HDF5_INSTALL is
set, even if incorrectly, it will never fall back on default paths.
Something like this, all guarded by clearing all advanced HDF5_* entries
if HDF5_INSTALL is changed so the user can change versions without
manually deleting the cache.

  IF(HDF5_INSTALL)
    # Look for the library only under the specified directory
    FIND_LIBRARY(HDF5_LIBRARY_DEBUG
     NAMES ${HDF5_SEARCH_DEBUG_NAMES}
     HINTS ${HDF5_INSTALL}
     PATH_SUFFIXES lib64 lib
     NO_DEFAULT_PATH
     )
  ELSE(HDF5_INSTALL)
    # Look for the library in default paths
    FIND_LIBRARY(HDF5_LIBRARY_DEBUG
     NAMES ${HDF5_SEARCH_DEBUG_NAMES}
     )
  ENDIF(HDF5_INSTALL)

Maybe it could look something like

  FIND_LIBRARY(HDF5_LIBRARY_DEBUG
   NAMES ${HDF5_SEARCH_DEBUG_NAMES}
   HINTS ${HDF5_INSTALL}
   PATH_SUFFIXES lib64 lib
   EXCLUSIVE_HINTS)

where the semantic (if EXCLUSIVE_HINTS is given) is that if the
arguments of HINTS is set (i.e. HDF5_INSTALL was set, either as an
environment variable or in the cache), then only directories under
HINTS/PATH_SUFFIXES are searched, otherwise (i.e. HDF5_INSTALL was not
set) the normal semantics of FIND_LIBRARY are used.

Jed

Attachment: pgpljBr24oPBL.pgp
Description: PGP signature

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to