mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
730aa1f6bc
There were some irregularities in the flags for handling NCZarr S3 support. The primary change is to regularize the flags controlling this to the following. 1. Automake: --enable-nczarr-s3 and CMake: ENABLE_NCZARR_S3 2. Automake: --enable-nczarr-s3-tests and CMake: ENABLE_NCZARR_S3_TESTS Flag 1 indicates that NCZarr should be built with S3 support enabled. Flag 2 indicates that the NCZarr S3 tests should be run These two flags are separate because running the NCZarr S3 tests requires access to protected S3 resources. Currently, running these tests is restricted to Unidata personnel. However, users may want to enable S3 support even if they cannot run the tests. It is, of course, an error to specify 2 without specifying 1. Additionally, if the AWS S3 SDK library is not found, then the NCZARR S3 support and testing must be disabled. Otherwise an error is signaled during the build. Some of these NCZarr and S3 changes are propagated to nc-config. Misc. Other Changes: 1. Allow testing for CYGWIN or MSVC in shell scripts. 2. Add specific test for HDF5 library version 1.10.6. This is encoded as "HDF5_UTF8_PATHS" because that is the first version where HDF5 properly supports it under Windows. This is used in hdf5internal/nc4_ndf5_ansi_to_utf8. 3. Add a AM Conditional -- AX_IGNORE -- for use in testing when it is desirable to temporarily suppress Makefile code. 4. Add MULTIFILTER flag to CMakeLists.txt
99 lines
2.9 KiB
Bash
99 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
# Define a function that attempts to locate a
|
|
# plugin with a given canonical name.
|
|
# Assumptions:
|
|
# 1. plugins is a top-level directory
|
|
# Inputs:
|
|
# $1 is the canonical name
|
|
# $2 is 1 if we are running under cmake
|
|
# $3 is 1 if we are running using Visual Studio, blank otherwise
|
|
# $4 is the build type; only used if $3 is 1
|
|
# Outputs:
|
|
# return code is 0 is success, 1 if failed
|
|
# Variable HDF5_PLUGIN_LIB is set to the library file name
|
|
# Variable HDF5_PLUGIN_PATH is setthe absolute path to the
|
|
# directory containing the plugin library file
|
|
# Local variables are prefixed with FP_
|
|
#
|
|
# Note: we assume that the use of the CMAKE_BUILD_TYPE
|
|
# is obviated by setting the LIBRARY_OUTPUT_DIRECTORY
|
|
# variables: see hdf5plugins/CMakeLists.txt
|
|
|
|
findplugin() {
|
|
|
|
FP_NAME="$1"
|
|
|
|
# Figure out the compiler (some values from ./configure)
|
|
FP_ISCMAKE=@ISCMAKE@
|
|
FP_ISMSVC=@ISMSVC@
|
|
|
|
# Are we operating under OS-X? (test using uname)
|
|
FP_OS=`uname | cut -d '_' -f 1`
|
|
if test "x$FP_OS" = xDarwin ; then FP_ISOSX=1; fi
|
|
|
|
# Are we operating under CYGWIN? (test using uname)
|
|
FP_OS=`uname | cut -d '_' -f 1`
|
|
if test "x$FP_OS" = xCYGWIN ; then FP_ISCYGWIN=1; fi
|
|
|
|
FP_PLUGINS="$TOPBUILDDIR/plugins"
|
|
|
|
FP_PLUGIN_LIB=
|
|
FP_PLUGIN_PATH=
|
|
|
|
# Figure out the plugin file name
|
|
# Test for visual studio before cygwin since both might be true
|
|
if test "x$FP_ISMSVC" != x ; then
|
|
FP_PLUGIN_LIB="${FP_NAME}.dll"
|
|
elif test "x$FP_ISCYGWIN" != x ; then
|
|
FP_PLUGIN_LIB="cyg${FP_NAME}.dll"
|
|
elif test "x$FP_ISOSX" != x ; then
|
|
FP_PLUGIN_LIB="lib${FP_NAME}.so" # Should this include the version number in the name?
|
|
else # Presumably some form on *nix"
|
|
FP_PLUGIN_LIB="lib${FP_NAME}.so"
|
|
fi
|
|
|
|
# Figure out the path to where the lib is stored
|
|
# This can probably be simplified
|
|
# Case 1: Cmake with Visual Studio
|
|
# Do not know where to look for a dylib
|
|
# Case 1: Cmake with Visual Studio
|
|
if test "x$FP_ISCMAKE" != x -a "x${FP_ISMSVC}" != x ; then
|
|
# Case 1a: ignore the build type directory
|
|
if test -f "${FP_PLUGINS}/${FP_PLUGIN_LIB}" ; then
|
|
FP_PLUGIN_PATH="${FP_PLUGINS}"
|
|
fi
|
|
else # Case 2: automake
|
|
# Case 2a: look in .libs
|
|
if test -f "${FP_PLUGINS}/.libs/${FP_PLUGIN_LIB}" ; then
|
|
FP_PLUGIN_PATH="${FP_PLUGINS}/.libs"
|
|
else # Case 2: look in FP_PLUGINS directly
|
|
if test -f "${FP_PLUGINS}/${FP_PLUGIN_LIB}" ; then
|
|
FP_PLUGIN_PATH="${FP_PLUGINS}"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Verify
|
|
if test "x$FP_PLUGIN_PATH" = x ; then
|
|
echo "***Fail: Could not locate a usable HDF5_PLUGIN_PATH"
|
|
return 1
|
|
fi
|
|
if ! test -f "$FP_PLUGIN_PATH/$FP_PLUGIN_LIB" ; then
|
|
echo "***Fail: Could not locate a usable HDF5_PLUGIN_LIB"
|
|
return 1
|
|
fi
|
|
|
|
# If we are operating using both Visual Studio and Cygwin,
|
|
# then we need to convert the FP_PLUGIN_PATH to windows format
|
|
if test "x$FP_ISMSVC" != x -a "x$FP_ISCYGWIN" != x ; then
|
|
FP_PLUGIN_PATH=`cygpath -wl $FP_PLUGIN_PATH`
|
|
fi
|
|
|
|
# Set the final output variables
|
|
HDF5_PLUGIN_LIB="$FP_PLUGIN_LIB"
|
|
HDF5_PLUGIN_PATH="$FP_PLUGIN_PATH"
|
|
|
|
return 0
|
|
}
|