]>
Commit | Line | Data |
---|---|---|
1e59de90 TL |
1 | diff --git a/CMakeLists.txt b/CMakeLists.txt |
2 | index bd7c4f8..9e09cf3 100644 | |
3 | --- a/CMakeLists.txt | |
4 | +++ b/CMakeLists.txt | |
5 | @@ -430,7 +430,6 @@ IF(NC_EXTRA_DEPS) | |
6 | SET(EXTRA_DEPS ${EXTRA_DEPS} "${${_LIB}_DEP}") | |
7 | ENDFOREACH() | |
8 | MESSAGE("Extra deps: ${EXTRA_DEPS}") | |
9 | - LIST(REMOVE_DUPLICATES EXTRA_DEPS) | |
10 | SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${EXTRA_DEPS}) | |
11 | ENDIF() | |
12 | ### | |
13 | @@ -598,15 +597,6 @@ IF(USE_HDF5 OR ENABLE_NETCDF_4) | |
14 | # we will use a static library. This can be toggled | |
15 | # by explicitly modifying NC_FIND_SHARED_LIBS. | |
16 | ## | |
17 | - IF(NC_FIND_SHARED_LIBS) | |
18 | - SET(NC_HDF5_LINK_TYPE "shared") | |
19 | - SET(NC_HDF5_LINK_TYPE_UPPER "SHARED") | |
20 | - ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB) | |
21 | - ELSE(NC_FIND_SHARED_LIBS) | |
22 | - SET(NC_HDF5_LINK_TYPE "static") | |
23 | - SET(NC_HDF5_LINK_TYPE_UPPER "STATIC") | |
24 | - ADD_DEFINITIONS(-DH5_BUILT_AS_STATIC_LIB) | |
25 | - ENDIF(NC_FIND_SHARED_LIBS) | |
26 | ||
27 | ##### | |
28 | # First, find the C and HL libraries. | |
29 | @@ -619,7 +609,7 @@ IF(USE_HDF5 OR ENABLE_NETCDF_4) | |
30 | SET(SEARCH_PACKAGE_NAME ${HDF5_PACKAGE_NAME}) | |
31 | FIND_PACKAGE(HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS C HL CONFIG REQUIRED ${NC_HDF5_LINK_TYPE}) | |
32 | ELSE(MSVC) | |
33 | - FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) | |
34 | + FIND_PACKAGE(HDF5 COMPONENTS C HL CONFIG REQUIRED) | |
35 | ENDIF(MSVC) | |
36 | ||
37 | ## | |
38 | @@ -701,6 +691,19 @@ IF(USE_HDF5 OR ENABLE_NETCDF_4) | |
39 | SET(HDF5_C_LIBRARY hdf5) | |
40 | ENDIF() | |
41 | ENDIF(HDF5_C_LIBRARY AND HDF5_HL_LIBRARY AND HDF5_INCLUDE_DIR) | |
42 | + | |
43 | + if(TARGET hdf5::hdf5-shared) | |
44 | + set(HDF5_C_LIBRARY hdf5::hdf5-shared) | |
45 | + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-shared) | |
46 | + set(HDF5_HL_LIBRARIES hdf5::hdf5_hl-shared) | |
47 | + ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB) | |
48 | + else() | |
49 | + set(HDF5_C_LIBRARY hdf5::hdf5-static) | |
50 | + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-static) | |
51 | + set(HDF5_HL_LIBRARIES hdf5::hdf5_hl-static) | |
52 | + ADD_DEFINITIONS(-DH5_BUILT_AS_STATIC_LIB) | |
53 | + endif() | |
54 | + list(APPEND CMAKE_REQUIRED_LIBRARIES ${HDF5_C_LIBRARY}) | |
55 | ||
56 | FIND_PACKAGE(Threads) | |
57 | ||
58 | @@ -728,17 +731,9 @@ IF(USE_HDF5 OR ENABLE_NETCDF_4) | |
59 | CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Pset_all_coll_metadata_ops "" HDF5_HAS_COLL_METADATA_OPS) | |
60 | ||
61 | #Check to see if H5Z_SZIP exists in HDF5_Libraries. If so, we must use szip. | |
62 | - CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Z_SZIP "" USE_SZIP) | |
63 | + set(USE_SZIP ${HDF5_ENABLE_SZIP_SUPPORT}) | |
64 | IF(USE_SZIP) | |
65 | - FIND_LIBRARY(SZIP NAMES szip sz) | |
66 | - IF(SZIP) | |
67 | SET(HAVE_H5Z_SZIP 1) | |
68 | - SET(SZIP_LIBRARY ${SZIP}) | |
69 | - SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SZIP}) | |
70 | - MESSAGE(STATUS "HDF5 has szip.") | |
71 | - ELSE() | |
72 | - MESSAGE(FATAL_ERROR "HDF5 Requires SZIP, but cannot find libszip or libsz.") | |
73 | - ENDIF() | |
74 | ENDIF() | |
75 | ||
76 | CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5Pset_libver_bounds "" HAVE_H5PSET_LIBVER_BOUNDS) | |
77 | @@ -788,8 +783,7 @@ IF(USE_HDF5 OR ENABLE_NETCDF_4) | |
78 | ENDIF(USE_HDF5 OR ENABLE_NETCDF_4) | |
79 | ||
80 | # See if we have libcurl | |
81 | -FIND_PACKAGE(CURL) | |
82 | -ADD_DEFINITIONS(-DCURL_STATICLIB=1) | |
83 | +FIND_PACKAGE(CURL CONFIG) | |
84 | INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) | |
85 | ||
86 | # Check to see if CURLOPT_USERNAME is defined. | |
87 | @@ -1893,7 +1887,6 @@ ENDIF() | |
88 | ||
89 | STRING(REPLACE ";" " " LINKFLAGS "${LINKFLAGS}") | |
90 | ||
91 | -LIST(REMOVE_DUPLICATES NC_LIBS) | |
92 | LIST(REMOVE_DUPLICATES LINKFLAGS) | |
93 | ||
94 | SET(LIBS ${NC_LIBS}) | |
95 | diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt | |
96 | index ea9b029..8aeeab7 100644 | |
97 | --- a/liblib/CMakeLists.txt | |
98 | +++ b/liblib/CMakeLists.txt | |
99 | @@ -58,7 +58,7 @@ ENDIF() | |
100 | ||
101 | SET(TLL_LIBS "") | |
102 | ||
103 | -SET(TLL_LIBS ${TLL_LIBS} ${HAVE_LIBM} ${ZLIB_LIBRARY}) | |
104 | +SET(TLL_LIBS ${TLL_LIBS} ${HAVE_LIBM} ZLIB::ZLIB) | |
105 | ||
106 | # Add extra dependencies specified via NC_EXTRA_DEPS | |
107 | SET(TLL_LIBS ${TLL_LIBS} ${EXTRA_DEPS}) | |
108 | @@ -68,27 +68,15 @@ IF(HAVE_LIBDL) | |
109 | ENDIF() | |
110 | ||
111 | IF(USE_HDF5 OR USE_NETCDF4) | |
112 | - IF(NOT MSVC) | |
113 | - # Some version of cmake define HDF5_hdf5_LIBRARY instead of | |
114 | - # HDF5_LIBRARY. Same with HDF5_HL_LIBRARIES | |
115 | - IF(HDF5_hdf5_LIBRARY AND NOT HDF5_C_LIBRARIES) | |
116 | - SET(HDF5_C_LIBRARIES ${HDF5_hdf5_LIBRARY}) | |
117 | - ENDIF() | |
118 | - IF(HDF5_hdf5_hl_LIBRARY AND NOT HDF5_HL_LIBRARIES) | |
119 | - SET(HDF5_HL_LIBRARIES ${HDF5_hdf5_hl_LIBRARY}) | |
120 | - ENDIF() | |
121 | - # The order of the libraries is important here for static | |
122 | - # builds: | |
123 | - # Make sure that HDF5_C_LIBRARY appears *after* | |
124 | - # HDF5_HL_LIBRARY. | |
125 | - SET(TLL_LIBS ${HDF5_HL_LIBRARIES} ${HDF5_C_LIBRARIES} ${TLL_LIBS} ${SZIP_LIBRARY}) | |
126 | - ELSE() # Windows CMake defines HDF5_LIBRARIES. | |
127 | - SET(TLL_LIBS ${HDF5_LIBRARIES} ${TLL_LIBS} ${SZIP_LIBRARY}) | |
128 | - ENDIF() | |
129 | + if(TARGET hdf5::hdf5-shared) | |
130 | + SET(TLL_LIBS ${TLL_LIBS} hdf5::hdf5-shared hdf5::hdf5_hl-shared) | |
131 | + else() | |
132 | + SET(TLL_LIBS ${TLL_LIBS} hdf5::hdf5-static hdf5::hdf5_hl-static) | |
133 | + endif() | |
134 | ENDIF() | |
135 | ||
136 | IF(USE_DAP) | |
137 | - SET(TLL_LIBS ${TLL_LIBS} ${CURL_LIBRARY}) | |
138 | + SET(TLL_LIBS ${TLL_LIBS} CURL::libcurl) | |
139 | ENDIF() | |
140 | ||
141 | IF(USE_HDF4) | |
142 | @@ -100,7 +88,6 @@ IF(ENABLE_PNETCDF AND PNETCDF) | |
143 | ENDIF() | |
144 | ||
145 | IF(TLL_LIBS) | |
146 | - LIST(REMOVE_DUPLICATES TLL_LIBS) | |
147 | ENDIF() | |
148 | ||
149 | TARGET_LINK_LIBRARIES(netcdf ${TLL_LIBS}) | |
150 | diff --git a/netCDFConfig.cmake.in b/netCDFConfig.cmake.in | |
151 | index 9d68eec..b8f6113 100644 | |
152 | --- a/netCDFConfig.cmake.in | |
153 | +++ b/netCDFConfig.cmake.in | |
154 | @@ -12,6 +12,10 @@ set_and_check(netCDF_LIB_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") | |
155 | set(netCDF_LIBRARIES netCDF::netcdf) | |
156 | ||
157 | # include target information | |
158 | +include(CMakeFindDependencyMacro) | |
159 | +find_dependency(ZLIB) | |
160 | +find_dependency(HDF5 CONFIG) | |
161 | +find_dependency(CURL CONFIG) | |
162 | include("${CMAKE_CURRENT_LIST_DIR}/netCDFTargets.cmake") | |
163 | ||
164 | # Compiling Options |