Skip to content

Commit 841bd75

Browse files
committed
FindHDF5 ignores conda
1 parent ae19c39 commit 841bd75

File tree

4 files changed

+23
-11
lines changed

4 files changed

+23
-11
lines changed

CMakePresets.json

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,6 @@
1515
"displayName": "Ninja Multi-Config",
1616
"generator": "Ninja Multi-Config"
1717
},
18-
{
19-
"name": "notest", "inherits": "default",
20-
"displayName": "omit self-tests",
21-
"cacheVariables": {
22-
"BUILD_TESTING": false
23-
}
24-
},
2518
{
2619
"name": "build", "inherits": "default",
2720
"displayName": "build all libraries",

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ for more details see [Install.md](./Install.md).
8383

8484
For general use with non-CMake build systems, "h5fortran.pc" pkg-config file is also generated / installed.
8585

86+
To save time, if not intended to use self-tests, you can skip the build of the test suite:
87+
88+
```sh
89+
cmake -B build -DBUILD_TESTING=off
90+
```
91+
8692
### Autobuild HDF5
8793

8894
h5fortran will automatically build the HDF5 and ZLIB libraries if needed.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.2.3
1+
4.2.4

cmake/Modules/FindHDF5.cmake

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,8 @@ endif()
350350

351351
find_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

388389
find_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

424426
find_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})
572575
endif()
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
576584
find_package(PkgConfig)
@@ -634,6 +642,11 @@ check_hdf5_link()
634642
set(CMAKE_REQUIRED_LIBRARIES)
635643
set(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+
637650
include(FindPackageHandleStandardArgs)
638651
find_package_handle_standard_args(HDF5
639652
REQUIRED_VARS HDF5_C_LIBRARIES HDF5_links

0 commit comments

Comments
 (0)