Source
45
45
find_valid_components (HDF5)
46
46
47
47
#==============================================================================
48
48
# SEARCH FOR VALIDATED COMPONENTS
49
49
foreach (HDF5_comp IN LISTS HDF5_FIND_VALID_COMPONENTS)
50
50
51
51
# If not found already, search...
52
52
if (NOT HDF5_${HDF5_comp}_FOUND)
53
53
54
54
# Manually add the MPI include and library dirs to search paths
55
-
if (HDF5_comp STREQUAL C OR HDF5_comp STREQUAL HL)
56
-
if (MPI_C_FOUND)
57
-
set (HDF5_${HDF5_comp}_PATHS ${MPI_C_INCLUDE_PATH})
58
-
foreach (lib IN LISTS MPI_C_LIBRARIES)
59
-
get_filename_component (libdir ${lib} PATH)
60
-
list (APPEND HDF5_${HDF5_comp}_PATHS ${libdir})
61
-
unset (libdir)
62
-
endforeach ()
63
-
endif ()
64
-
else ()
65
-
if (MPI_Fortran_FOUND)
66
-
set (HDF5_${HDF5_comp}_PATHS ${MPI_Fortran_INCLUDE_PATH})
67
-
foreach (lib IN LISTS MPI_Fortran_LIBRARIES)
68
-
get_filename_component (libdir ${lib} PATH)
69
-
list (APPEND HDF5_${HDF5_comp}_PATHS ${libdir})
70
-
unset (libdir)
71
-
endforeach ()
72
-
endif ()
55
+
if ( (HDF5_comp STREQUAL C OR HDF5_comp STREQUAL HL) AND MPI_C_FOUND)
56
+
set (mpiincs ${MPI_C_INCLUDE_PATH})
57
+
set (mpilibs ${MPI_C_LIBRARIES})
58
+
set (mpifound ${MPI_C_FOUND})
59
+
elseif (MPI_Fortran_FOUND)
60
+
set (mpiincs ${MPI_Fortran_INCLUDE_PATH})
61
+
set (mpilibs ${MPI_Fortran_LIBRARIES})
62
+
set (mpifound ${MPI_Fortran_FOUND})
73
63
endif ()
74
64
75
65
# Search for the package component
76
-
find_package_component(HDF5 COMPONENT ${HDF5_comp}
77
-
PATHS ${HDF5_${HDF5_comp}_PATHS})
66
+
if (mpifound)
67
+
initialize_paths (HDF5_${HDF5_comp}_PATHS
68
+
INCLUDE_DIRECTORIES ${mpiincs}
69
+
LIBRARIES ${mpilibs})
70
+
find_package_component(HDF5 COMPONENT ${HDF5_comp}
71
+
PATHS ${HDF5_${HDF5_comp}_PATHS})
72
+
else ()
73
+
find_package_component(HDF5 COMPONENT ${HDF5_comp})
74
+
endif ()
78
75
79
76
# Continue only if found
80
77
if (HDF5_${HDF5_comp}_FOUND)
81
78
82
79
# Dependencies
83
80
if (HDF5_comp STREQUAL C AND NOT HDF5_C_IS_SHARED)
84
81
85
82
# DEPENDENCY: LIBZ
86
83
find_package (LIBZ)
87
84
if (LIBZ_FOUND)