Imported Upstream version 1.9.0
[platform/core/ml/nnfw.git] / infra / nnfw / cmake / packages / HDF5Config.cmake
1 # Don't cache HDF5_*. Otherwise it will use the cached value without searching.
2 unset(HDF5_DIR CACHE)
3 unset(HDF5_INCLUDE_DIRS CACHE)
4 unset(HDF5_CXX_LIBRARY_hdf5 CACHE)
5 unset(HDF5_CXX_LIBRARY_hdf5_cpp CACHE)
6
7 if(NOT BUILD_WITH_HDF5)
8   set(HDF5_FOUND FALSE)
9   return()
10 endif(NOT BUILD_WITH_HDF5)
11
12 # Case 1. external hdf5
13 if(DEFINED EXT_HDF5_DIR)
14   find_path(HDF5_INCLUDE_DIRS NAMES H5Cpp.h NO_CMAKE_FIND_ROOT_PATH PATHS "${EXT_HDF5_DIR}/include")
15   find_library(HDF5_CXX_LIBRARY_hdf5 NAMES libhdf5.a PATHS "${EXT_HDF5_DIR}/lib")
16   find_library(HDF5_CXX_LIBRARY_hdf5_cpp NAMES libhdf5_cpp.a PATHS "${EXT_HDF5_DIR}/lib")
17   if (NOT (HDF5_INCLUDE_DIRS AND HDF5_CXX_LIBRARY_hdf5 AND HDF5_CXX_LIBRARY_hdf5_cpp))
18     message(WARNING "Failed to find H5Cpp.h or libhdf5.a or libhdf5_cpp.a")
19     set(HDF5_FOUND FALSE)
20     return()
21   else()
22     # message(FATAL_ERROR "0=${HDF5_INCLUDE_DIRS},1=${HDF5_CXX_LIBRARIES}")
23     set(HDF5_FOUND TRUE)
24     list(APPEND HDF5_CXX_LIBRARIES ${HDF5_CXX_LIBRARY_hdf5_cpp} ${HDF5_CXX_LIBRARY_hdf5})
25     return()
26   endif()
27 endif()
28
29 # Case 2. search pre-installed locations (by apt, brew, ...)
30 if(NOT CMAKE_CROSSCOMPILING)
31   find_package(HDF5 COMPONENTS CXX QUIET)
32 else()
33   find_path(HDF5_INCLUDE_DIRS NAMES hdf5.h ONLY_CMAKE_FIND_ROOT_PATH PATH_SUFFIXES include/hdf5/serial)
34
35   if (NOT HDF5_INCLUDE_DIRS)
36     set(HDF5_FOUND FALSE)
37     return()
38   endif()
39
40   if(HDF5_USE_STATIC_LIBRARIES)
41     find_library(HDF5_CXX_LIBRARY_hdf5 libhdf5.a)
42     find_library(HDF5_CXX_LIBRARY_hdf5_cpp libhdf5_cpp.a)
43   else(HDF5_USE_STATIC_LIBRARIES)
44     find_library(HDF5_CXX_LIBRARY_hdf5 libhdf5.so)
45     find_library(HDF5_CXX_LIBRARY_hdf5_cpp libhdf5_cpp.so)
46   endif(HDF5_USE_STATIC_LIBRARIES)
47
48   if (NOT (HDF5_CXX_LIBRARY_hdf5 AND HDF5_CXX_LIBRARY_hdf5_cpp))
49     set(HDF5_FOUND FALSE)
50     return()
51   endif()
52
53   # We can use "hdf5" and "hdf5_cpp" to use the same file founded with above.
54   list(APPEND HDF5_CXX_LIBRARIES "hdf5" "hdf5_cpp" "sz" "z" "dl" "m")
55
56   # Append missing libaec which is required by libsz, which is required by libhdf5
57   list(APPEND HDF5_CXX_LIBRARIES "aec")
58
59   set(HDF5_FOUND TRUE)
60 endif()