optdep() {
  local o="$3"
  [ "$o" ] || o=$(tr a-z A-Z <<< "$1")
  optional_depends "$1" -D"$2"_"$o"=O{N,FF} "$4"
}

optsyslib() {
  local SS
  if [[ -z $2 ]];then
    SS=${1^^}
  else
    SS=$2
  fi
  optdep "$1" VTK_USE_SYSTEM "$SS" "Use system's $1 library"
}

optwrap() {
  optdep "$1" VTK_WRAP "$2" "Wrap VTK classes into the $1 language"
}

depends -sub CXX gcc &&
depends cmake    &&
depends OPENGL   &&
depends libx11   &&
#optwrap JAVA     &&
optwrap PYTHON   &&
optwrap tcl      &&

optsyslib zlib                &&
optsyslib tiff                &&
optsyslib JPEG                &&
optsyslib libpng PNG          &&
optsyslib expat               &&
optsyslib libxml2             &&
optsyslib freetype2 FREETYPE  &&
optsyslib gl2ps               &&
optsyslib hdf5                &&
optsyslib netcdf              &&
optsyslib libtheora OGGTHEORA &&
optsyslib jsoncpp             &&
optsyslib libproj4            &&
#optsyslib xdmf2  XDMF          &&

optional_depends  qtbase ' -DVTK_Group_Qt=1 -DVTK_QT_VERSION=5' '' 'Qt support' &&
if is_depends_enabled $SPELL qtbase; then
  depends qttools
fi &&
optional_depends  qtwebkit ' -DVTK_Group_Web=1' ' -DVTK_Group_Web=0' 'Browsing support' &&
optional_depends  doxygen                       \
                  -DBUILD_DOCUMENTATION=O{N,FF} \
                  "build documentation"
