Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX: generate ncxx4-config in cmake builds #37

Merged
merged 2 commits into from
Jul 5, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,26 @@ INSTALL(
# End libnetcdf-cxx.settings section.
#####

#####
# Begin ncxx4-config section
#####

FILE(MAKE_DIRECTORY ${NCXX_BINARY_DIR}/tmp)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/ncxx4-config.cmake.in"
"${NCXX_BINARY_DIR}/tmp/ncxx4-config" @ONLY)
FILE(COPY "${NCXX_BINARY_DIR}/tmp/ncxx4-config"
DESTINATION ${NCXX_BINARY_DIR}/
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

INSTALL(PROGRAMS ${NCXX_BINARY_DIR}/ncxx4-config
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT utilities)

#####
# End ncxx4-config section
#####


#####
# Options
#####
Expand Down
159 changes: 159 additions & 0 deletions ncxx4-config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
#! /bin/sh
#
# This forms the basis for the ncxx4-config utility, which tells you
# various things about the netCDF C++ library installation.

prefix="@CMAKE_INSTALL_PREFIX@"
exec_prefix="@CMAKE_INSTALL_PREFIX@"
libdir="@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
includedir="@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@"

cc="@CMAKE_C_COMPILER@"
cxx="@CMAKE_CXX_COMPILER@"

cflags="-I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@"

libs="-L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ @NC_LIBS@"

has_dap="@USE_DAP@"
if [ -z $has_dap ]; then
has_dap="no"
else
has_dap="yes"
fi

has_nc2="@BUILD_V2@"
if [ -z $has_nc2 -o "$has_nc2" = "OFF" ]; then
has_nc2="no"
else
has_nc2="yes"
fi

has_nc4="@USE_NETCDF4@"
if [ -z $has_nc4 ]; then
has_nc4="no"
else
has_nc4="yes"
fi

version="@PACKAGE@ @VERSION@"

usage()
{
cat <<EOF
Usage: ncxx4-config [OPTION]

Available values for OPTION include:

--help display this help message and exit
--all display all options
--cc C compiler
--cxx C++ compiler
--cflags pre-processor and compiler flags
--has-dap whether OPeNDAP is enabled in this build
--has-nc2 whether NetCDF-2 API is enabled
--has-nc4 whether NetCDF-4/HDF-5 is enabled in this build
--libs library linking information for netcdf
--prefix Install prefix
--includedir Include directory
--version Library version

EOF

exit $1
}

all()
{
echo
echo "This $version has been built with the following features: "
echo
echo " --cc -> $cc"
echo " --cflags -> $cflags"
echo " --libs -> $libs"
echo
echo " --cxx -> $cxx"
echo
echo " --has-dap -> $has_dap"
echo " --has-nc2 -> $has_nc2"
echo " --has-nc4 -> $has_nc4"
echo
echo " --prefix -> $prefix"
echo " --includedir-> $includedir"
echo " --version -> $version"
echo
}

if test $# -eq 0; then
usage 1
fi

while test $# -gt 0; do
case "$1" in
# this deals with options in the style
# --option=value and extracts the value part
# [not currently used]
-*=*) value=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) value= ;;
esac

case "$1" in

--help)
usage 0
;;

--all)
all
;;

--cc)
echo $cc
;;

--cxx)
echo $cxx
;;

--cflags)
echo $cflags
;;

--libs)
echo $libs
;;

--has-dap)
echo $has_dap
;;

--has-nc2)
echo $has_nc2
;;

--has-nc4)
echo $has_nc4
;;

--prefix)
echo "${prefix}"
;;

--includedir)
echo "${includedir}"
;;

--version)
echo $version
;;

*)
echo "unknown option: $1"
usage
exit 1
;;
esac
shift
done

exit 0