summaryrefslogtreecommitdiffstats
path: root/config/cmake/FindHDF5.cmake.in
blob: 0ac8bc9f0634638dd5ef3cd96261da5518aeb22d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#
# To be used by projects that make use of Cmakeified hdf5-@HDF5_PACKAGE_VERSION@
#

#
# Find the HDF5 includes and get all installed hdf5 library settings from
# HDF5-config.cmake file : Requires a CMake compatible hdf5-1.8.5 or later 
# for this feature to work. The following vars are set if hdf5 is found.
#
# HDF5_FOUND               - True if found, otherwise all other vars are undefined
# HDF5_INCLUDE_DIR         - The include dir for main *.h files
# HDF5_FORTRAN_INCLUDE_DIR - The include dir for fortran modules and headers
# HDF5_VERSION_STRING      - full version (e.g. @HDF5_PACKAGE_VERSION@)
# HDF5_VERSION_MAJOR       - major part of version (e.g. @HDF5_PACKAGE_VERSION_MAJOR@)
# HDF5_VERSION_MINOR       - minor part (e.g. @HDF5_PACKAGE_VERSION_MINOR@)
# 
# The following boolean vars will be defined
# HDF5_ENABLE_PARALLEL  - 1 if HDF5 parallel supported
# HDF5_BUILD_FORTRAN    - 1 if HDF5 was compiled with fortran on
# HDF5_BUILD_CPP_LIB    - 1 if HDF5 was compiled with cpp on
# HDF5_BUILD_TOOLS      - 1 if HDF5 was compiled with tools on
# HDF5_BUILD_HL_LIB     - 1 if HDF5 was compiled with high level on
# HDF5_BUILD_HL_CPP_LIB - 1 if HDF5 was compiled with high level and cpp on
# 
# Target names that are valid (depending on enabled options)
# will be the following
#
# hdf5              : HDF5 C library
# hdf5_tools        : the tools library
# hdf5_f90cstub     : used by Fortran to C interface
# hdf5_fortran      : Fortran HDF5 library
# hdf5_cpp          : HDF5 cpp interface library
# hdf5_hl           : High Level library
# hdf5_hl_f90cstub  : used by Fortran to C interface to High Level library
# hdf5_hl_fortran   : Fortran High Level library
# hdf5_hl_cpp       : High Level cpp interface library
# 
# To aid in finding HDF5 as part of a subproject set
# HDF5_ROOT_DIR_HINT to the location where @HDF5_PACKAGE@@HDF_PACKAGE_EXT@-config.cmake lies

include (SelectLibraryConfigurations)
include (FindPackageHandleStandardArgs)

# The HINTS option should only be used for values computed from the system.
set (_HDF5_HINTS
    $ENV{HOME}/.local
    $ENV{HDF5_ROOT}
    $ENV{HDF5_ROOT_DIR_HINT}
)
# Hard-coded guesses should still go in PATHS. This ensures that the user
# environment can always override hard guesses.
set (_HDF5_PATHS
    $ENV{HOME}/.local
    $ENV{HDF5_ROOT}
    $ENV{HDF5_ROOT_DIR_HINT}
    /usr/lib/@HDF5_PACKAGE@
    /usr/share/@HDF5_PACKAGE@
    /usr/local/@HDF5_PACKAGE@
    /usr/local/@HDF5_PACKAGE@/share
)

FIND_PATH (HDF5_ROOT_DIR "@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-config.cmake"
    HINTS ${_HDF5_HINTS}
    PATHS ${_HDF5_PATHS}
    PATH_SUFFIXES
        cmake/@HDF5_PACKAGE@
        lib/cmake/@HDF5_PACKAGE@
        share/cmake/@HDF5_PACKAGE@
)

FIND_PATH (HDF5_INCLUDE_DIRS "H5public.h"
    HINTS ${_HDF5_HINTS}
    PATHS ${_HDF5_PATHS}
    PATH_SUFFIXES
        include
        Include
)

# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
# HDF5_INCLUDE_DIRS
set ( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )

if (HDF5_INCLUDE_DIR)
  set (HDF5_FOUND "YES")
  include (${HDF5_ROOT_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-config.cmake)
endif (HDF5_INCLUDE_DIR)