-
Notifications
You must be signed in to change notification settings - Fork 103
Open
Description
I am building netcdf-fortran (version 4.6.2-rc1) without enabling szip for hdf5 (version 1.14.5) and netcdf-c (version 4.9.3-rc1), but nc_def_var_szip is still searched for and when it is not found, the error here is thrown:
"If netCDF-C 4.7.4 is present but is built statically, you *must* specify all dependencies"
"by setting the LDFLAGS environmental variable.\n"
"Example:\n"
" $ export LDFLAGS=$(nc-config --libs)"
Do this line:
CHECK_LIBRARY_EXISTS(${NETCDF_C_LIBRARY} nc_def_var_szip "" HAVE_DEF_VAR_SZIP)
and the block of code after need to be guarded with an if statement on whether szip is enabled? The trick of adding set(HAVE_DEF_VAR_SZIP TRUE) before if (NOT HAVE_DEF_VAR_SZIP) makes the installation work.
To reproduce, this is how I am building HDF5:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release \
-DHDF5_BUILD_TOOLS:BOOL=ON -DCMAKE_INSTALL_PREFIX=${HDF5_PATH} \
-DZLIB_ROOT=${HDF5_PATH}/zlib \
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF \
-DCMAKE_CXX_COMPILER=${CXX_COMPILER} \
-DCMAKE_C_COMPILER=${C_COMPILER} \
-DCMAKE_Fortran_COMPILER=${FC_COMPILER} \
-DBUILD_TESTING:BOOL=OFF \
-DHDF5_ENABLE_PARALLEL:BOOL=ON \
-DHDF5_BUILD_FORTRAN:BOOL=ON
cmake --build . --config Release
cpack -C Release CPackConfig.cmake
./HDF5-${HDF5_VERSION}-Linux.sh --prefix=${HDF5_PATH} --skip-license
This is how I am building NETCDF-C:
cmake -DCMAKE_INSTALL_PREFIX=${NETCDF_PATH}/netcdf-c \
-DNETCDF_ENABLE_HDF5=ON \
-DNETCDF_ENABLE_DAP=ON \
-DNETCDF_BUILD_UTILITIES=ON \
-DNETCDF_ENABLE_PNETCDF=OFF \
-DNETCDF_ENABLE_CDF5=ON \
-DNETCDF_ENABLE_TESTS=OFF \
-DNETCDF_ENABLE_PARALLEL_TESTS=OFF \
-DZLIB_INCLUDE_DIR=${HDF5_ROOT}/zlib/include \
-DCMAKE_C_FLAGS="-I ${HDF5_ROOT}/include/" \
-DCMAKE_C_COMPILER=${C_COMPILER} \
-DNETCDF_ENABLE_PNETCDF=ON \
-DPNETCDF_LIBRARY=${NETCDF_PATH}/pnetcdf/lib/libpnetcdf.so \
-DPNETCDF_INCLUDE_DIR=${NETCDF_PATH}/pnetcdf/include \
-DNETCDF_ENABLE_FILTER_SZIP=OFF \
-DNETCDF_ENABLE_NCZARR=OFF
make install
This is how I am building NETCDF-Fortran:
export PATH=${NETCDF_PATH}/netcdf-c:$PATH
export HDF5_PLUGIN_PATH=${NETCDF_PATH}/netcdf-c/hdf5/lib/plugin/
cmake -DCMAKE_INSTALL_PREFIX=${NETCDF_PATH}/netcdf-fortran \
-DENABLE_TESTS=OFF \
-DBUILD_EXAMPLES=OFF \
-DCMAKE_Fortran_COMPILER=$FC_COMPILER
make install
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels