FindHDF5: Add NAMES_PER_DIR and introduce HDF5_PREFER_PARALLEL
The calls to find_program now use NAMES_PER_DIR so that the first executable (e.g. h5pcc) appearing on their PATH will get chosen. The HDF5_PREFER_PARALLEL variable swaps the search order when it is set to true in the event that a directory being search contains both h5cc and h5pcc.
This commit is contained in:
parent
8e8824149f
commit
fd26a19afc
|
@ -0,0 +1,6 @@
|
||||||
|
FindHDF5-updates
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* The :module:`FindHDF5` module learend a new ``HDF5_PREFER_PARALLEL``
|
||||||
|
option allowing users to specify that a parallel HDF5 tool is
|
||||||
|
preferred if both are available.
|
|
@ -31,6 +31,12 @@
|
||||||
# Find module will then look in this path when searching for HDF5
|
# Find module will then look in this path when searching for HDF5
|
||||||
# executables, paths, and libraries.
|
# executables, paths, and libraries.
|
||||||
#
|
#
|
||||||
|
# Both the serial and parallel HDF5 wrappers are considered and the first
|
||||||
|
# directory to contain either one will be used. In the event that both appear
|
||||||
|
# in the same directory the serial version is preferentially selected. This
|
||||||
|
# behavior can be reversed by setting the variable HDF5_PREFER_PARALLEL to
|
||||||
|
# true.
|
||||||
|
#
|
||||||
# In addition to finding the includes and libraries required to compile
|
# In addition to finding the includes and libraries required to compile
|
||||||
# an HDF5 client application, this module also makes an effort to find
|
# an HDF5 client application, this module also makes an effort to find
|
||||||
# tools that come with the HDF5 distribution that may be useful for
|
# tools that come with the HDF5 distribution that may be useful for
|
||||||
|
@ -103,28 +109,43 @@ else()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Determine whether to search for serial or parallel executable first
|
||||||
|
if(HDF5_PREFER_PARALLEL)
|
||||||
|
set(HDF5_C_COMPILER_NAMES h5pcc h5cc)
|
||||||
|
set(HDF5_CXX_COMPILER_NAMES h5pc++ h5c++)
|
||||||
|
set(HDF5_Fortran_COMPILER_NAMES h5pfc h5fc)
|
||||||
|
else()
|
||||||
|
set(HDF5_C_COMPILER_NAMES h5cc h5pcc)
|
||||||
|
set(HDF5_CXX_COMPILER_NAMES h5c++ h5pc++)
|
||||||
|
set(HDF5_Fortran_COMPILER_NAMES h5fc h5pfc)
|
||||||
|
endif()
|
||||||
|
|
||||||
# try to find the HDF5 wrapper compilers
|
# try to find the HDF5 wrapper compilers
|
||||||
find_program( HDF5_C_COMPILER_EXECUTABLE
|
find_program( HDF5_C_COMPILER_EXECUTABLE
|
||||||
NAMES h5cc h5pcc
|
NAMES ${HDF5_C_COMPILER_NAMES} NAMES_PER_DIR
|
||||||
HINTS ENV HDF5_ROOT
|
HINTS ENV HDF5_ROOT
|
||||||
PATH_SUFFIXES bin Bin
|
PATH_SUFFIXES bin Bin
|
||||||
DOC "HDF5 Wrapper compiler. Used only to detect HDF5 compile flags." )
|
DOC "HDF5 Wrapper compiler. Used only to detect HDF5 compile flags." )
|
||||||
mark_as_advanced( HDF5_C_COMPILER_EXECUTABLE )
|
mark_as_advanced( HDF5_C_COMPILER_EXECUTABLE )
|
||||||
|
|
||||||
find_program( HDF5_CXX_COMPILER_EXECUTABLE
|
find_program( HDF5_CXX_COMPILER_EXECUTABLE
|
||||||
NAMES h5c++ h5pc++
|
NAMES ${HDF5_CXX_COMPILER_NAMES} NAMES_PER_DIR
|
||||||
HINTS ENV HDF5_ROOT
|
HINTS ENV HDF5_ROOT
|
||||||
PATH_SUFFIXES bin Bin
|
PATH_SUFFIXES bin Bin
|
||||||
DOC "HDF5 C++ Wrapper compiler. Used only to detect HDF5 compile flags." )
|
DOC "HDF5 C++ Wrapper compiler. Used only to detect HDF5 compile flags." )
|
||||||
mark_as_advanced( HDF5_CXX_COMPILER_EXECUTABLE )
|
mark_as_advanced( HDF5_CXX_COMPILER_EXECUTABLE )
|
||||||
|
|
||||||
find_program( HDF5_Fortran_COMPILER_EXECUTABLE
|
find_program( HDF5_Fortran_COMPILER_EXECUTABLE
|
||||||
NAMES h5fc h5pfc
|
NAMES ${HDF5_Fortran_COMPILER_NAMES} NAMES_PER_DIR
|
||||||
HINTS ENV HDF5_ROOT
|
HINTS ENV HDF5_ROOT
|
||||||
PATH_SUFFIXES bin Bin
|
PATH_SUFFIXES bin Bin
|
||||||
DOC "HDF5 Fortran Wrapper compiler. Used only to detect HDF5 compile flags." )
|
DOC "HDF5 Fortran Wrapper compiler. Used only to detect HDF5 compile flags." )
|
||||||
mark_as_advanced( HDF5_Fortran_COMPILER_EXECUTABLE )
|
mark_as_advanced( HDF5_Fortran_COMPILER_EXECUTABLE )
|
||||||
|
|
||||||
|
unset(HDF5_C_COMPILER_NAMES)
|
||||||
|
unset(HDF5_CXX_COMPILER_NAMES)
|
||||||
|
unset(HDF5_Fortran_COMPILER_NAMES)
|
||||||
|
|
||||||
find_program( HDF5_DIFF_EXECUTABLE
|
find_program( HDF5_DIFF_EXECUTABLE
|
||||||
NAMES h5diff
|
NAMES h5diff
|
||||||
HINTS ENV HDF5_ROOT
|
HINTS ENV HDF5_ROOT
|
||||||
|
@ -378,4 +399,3 @@ find_package_handle_standard_args( HDF5
|
||||||
REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS
|
REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS
|
||||||
VERSION_VAR HDF5_VERSION
|
VERSION_VAR HDF5_VERSION
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue