@@ -350,7 +350,8 @@ endif()
350350
351351find_program (HDF5_Fortran_COMPILER_EXECUTABLE
352352 NAMES ${wrapper_names}
353- HINTS ENV HOMEBREW_PREFIX
353+ NAMES_PER_DIR
354+ HINTS ${HOMEBREW_PREFIX} ENV HOMEBREW_PREFIX ${MACPORTS_PREFIX} ENV MACPORTS_PREFIX
354355 PATHS ${hdf5_binpref}
355356 PATH_SUFFIXES ${hdf5_binsuf}
356357)
@@ -387,7 +388,8 @@ set(inc_dirs)
387388
388389find_program (HDF5_CXX_COMPILER_EXECUTABLE
389390 NAMES h5c++ h5c++-64
390- HINTS ENV HOMEBREW_PREFIX
391+ NAMES_PER_DIR
392+ HINTS ${HOMEBREW_PREFIX} ENV HOMEBREW_PREFIX ${MACPORTS_PREFIX} ENV MACPORTS_PREFIX
391393 PATHS ${hdf5_binpref}
392394 PATH_SUFFIXES ${hdf5_binsuf}
393395)
@@ -423,7 +425,8 @@ endif()
423425
424426find_program (HDF5_C_COMPILER_EXECUTABLE
425427 NAMES ${wrapper_names}
426- HINTS ENV HOMEBREW_PREFIX
428+ NAMES_PER_DIR
429+ HINTS ${HOMEBREW_PREFIX} ENV HOMEBREW_PREFIX ${MACPORTS_PREFIX} ENV MACPORTS_PREFIX
427430 PATHS ${hdf5_binpref}
428431 PATH_SUFFIXES ${hdf5_binsuf}
429432)
@@ -571,6 +574,11 @@ if(NOT HDF5_ROOT AND DEFINED ENV{HDF5_ROOT})
571574 set (HDF5_ROOT $ENV{HDF5_ROOT} )
572575endif ()
573576
577+ # Conda causes numerous problems with finding HDF5, so exclude from search
578+ if (DEFINED ENV{CONDA_PREFIX})
579+ list (APPEND CMAKE_IGNORE_PATH $ENV{CONDA_PREFIX} /bin $ENV{CONDA_PREFIX} /lib $ENV{CONDA_PREFIX} /include )
580+ endif ()
581+
574582# we don't use pkg-config names because some distros pkg-config for HDF5 is broken
575583# however at least the paths are often correct
576584find_package (PkgConfig)
@@ -634,6 +642,11 @@ check_hdf5_link()
634642set (CMAKE_REQUIRED_LIBRARIES)
635643set (CMAKE_REQUIRED_INCLUDES)
636644
645+ # pop off ignored paths so rest of script can find Python
646+ list (POP_BACK CMAKE_IGNORE_PATH )
647+ list (POP_BACK CMAKE_IGNORE_PATH )
648+ list (POP_BACK CMAKE_IGNORE_PATH )
649+
637650include (FindPackageHandleStandardArgs)
638651find_package_handle_standard_args(HDF5
639652 REQUIRED_VARS HDF5_C_LIBRARIES HDF5_links
0 commit comments