#!/bin/bash

#   Licensed to the Apache Software Foundation (ASF) under one
#   or more contributor license agreements.  See the NOTICE file
#   distributed with this work for additional information
#   regarding copyright ownership.  The ASF licenses this file
#   to you under the Apache License, Version 2.0 (the
#   "License"); you may not use this file except in compliance
#   with the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing,
#   software distributed under the License is distributed on an
#   #  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#   KIND, either express or implied.  See the License for the
#   specific language governing permissions and limitations
#   under the License.

usage() {
	echo "  Usage: buildsdk targetDirectory"
	echo "    Builds SDK for distribution."
	echo     buildsdk must be run from the root of the uimacpp source tree.
	echo "    The uimacpp project must be built and installed by running"
	echo "      'make install' in the directory of the uimacpp source tree."
	echo "    The doxygen documentation must be built by running buildocs.sh"
	echo "      in the docs directory of the uimacpp source tree."
	echo "    Requires the following environment variables:"
	echo "      UIMA_INSTALLDIR - 'install' location of uimacpp build."
	echo "                     Defaults to ./usr/local/uimacpp"
	echo "      APR_HOME - root of the APR install."
	echo "      ICU_HOME - root of the ICU install."
	echo "      XERCES_HOME - root of the XERCES install."
 	echo "      ACTIVEMQ_HOME - root of the XERCES install." 
        echo "      APU_HOME - root of the APR Util install Required if ACTIVEMQ_HOME is set."
}


copylicenses() {
	echo copying licenses...

	# add Apache SDK licenses
	cp $CPL  $UIMACPP_SOURCE/NOTICE.4bin $UIMA_DIR/NOTICE
	cp $CPL  $UIMACPP_SOURCE/LICENSE $UIMA_DIR/
	cp $CPL  $UIMACPP_SOURCE/RELEASE_NOTES* $UIMA_DIR/
	cp $CPL  $UIMACPP_SOURCE/README.4bin $UIMA_DIR/README

# 	mkdir "$UIMA_DIR"/licenses/apr
# 	if [ -r "$APR_HOME"/LICENSE ]; then
#   	  cp -p "$APR_HOME"/LICENSE* "$UIMA_DIR"/licenses/apr/
# 	else
# 	  echo "WARNING: LICENSE file for APR must be copied to $UIMA_DIR"/licenses/apr
# 	fi
# 	mkdir "$UIMA_DIR"/licenses/icu
# 	cp -p "$ICU_HOME"/license* "$UIMA_DIR"/licenses/icu/
# 	mkdir "$UIMA_DIR"/licenses/xerces
# 	if [ -r "$XERCES_HOME"/LICENSE ]; then
#   	  cp -p "$XERCES_HOME"/LICENSE* "$UIMA_DIR"/licenses/xerces/
# 	else
# 	  echo "WARNING: LICENSE file for XERCES must be copied to $UIMA_DIR"/licenses/xerces
# 	fi
        return
}



# check args
if [  $# -lt 1 ]; then
	echo ERROR: SDK target directory not specified
	usage
	exit
fi

TARGET_DIR="$1"
mkdir $TARGET_DIR
if [ ! -d "$TARGET_DIR" ]; then
       echo ERROR: Could not create $TARGET_DIR
       exit
fi

UIMA_DIR=$TARGET_DIR/uimacpp

if [ "$2" = "clean" ]; then
	echo removing "$UIMA_DIR"
	rm -rf "$UIMA_DIR"
fi

if [ -d "$UIMA_DIR" ]; then
       echo ERROR: directory "$UIMA_DIR" already exists. Please use "clean" option
       exit
fi

echo SDK directory tree will be built in $UIMA_DIR

UIMACPP_SOURCE=`pwd`
if [ ! -d "$UIMACPP_SOURCE"/src ]; then
       echo ERROR: current directory is not root of UIMACPP source tree
       exit
fi

# set default values if not set

if [ "$UIMA_INSTALLDIR" = "" ]; then
	echo ERROR: UIMA_INSTALLDIR is not set.
       	exit
fi

if [[ "$APR_HOME" = "" || "$ICU_HOME" = "" || "$XERCES_HOME" = "" ]]; then
    echo Error: APR_HOME and ICU_HOME and XERCES_HOME must all be specified
    echo UIMACPP SDK was not built.
    exit
fi

echo check that the required directories contain files
if [ ! -r "$UIMA_INSTALLDIR"/include/uima/api.hpp ]; then
  	echo ERROR: uima/api.hpp not found
	echo UIMA_INSTALLDIR "$UIMA_INSTALLDIR" is invalid.
	echo Build and install UIMA C++ first by running::
        echo make
        echo make install
	echo UIMACPP SDK was  not built.
	exit
fi

if [ ! -r "$UIMA_INSTALLDIR"/bin/runAECpp ]; then
	echo ERROR: runAECpp not found.
        echo UIMA_INSTALLDIR "$UIMA_INSTALLDIR" is invalid.
	echo Build and install UIMA C++ first by running:
        echo make
        echo make install
	echo UIMACPP SDK was  not built.
	exit
fi

if [ ! -r "$UIMACPP_SOURCE"/docs/html/index.html ]; then
       echo ERROR: The UIMA C++ doxygen docs are missing.
       echo Build the docs by running
       echo cd docs
       echo . builddocs.sh
       echo UIMACPP SDK was not built.
       exit
fi

if [ ! -d "$APR_HOME"/include ]; then
       echo ERROR: APR_HOME "$APR_HOME" is invalid.
       echo UIMACPP SDK was not built.
       exit
fi

if [ ! -d "$ICU_HOME"/include ]; then
  	echo ERROR: ICU_HOME "$ICU_HOME" is invalid.
        echo UIMACPP SDK was not built
        exit
fi

if [ ! -d "$XERCES_HOME"/include ]; then
       echo ERROR: XERCESHOME "$XERCES_HOME" is invalid.
       echo UIMACPP SDK was not built.
fi

if [  -r "$UIMA_INSTALLDIR"/bin/deployCppService ]; then
   echo "checking $ACTIVEMQ_HOME"
   if [ "$ACTIVEMQ_HOME" = "" ]; then
      echo ERROR: ACTIVEMQ_HOME must be set to location of ActiveMQ CPP install.
      echo UIMACPP SDK was not built.
      exit
   fi
   echo "checking $APU_HOME"
   if [ "$APU_HOME" = "" ]; then
      echo ERROR: APU_HOME must be set to location where APR-Util is installed.
      echo UIMACPP SDK was not built.
      exit
   fi


   if [ ! -d "$ACTIVEMQ_HOME"/lib ]; then
      echo ERROR: ACTIVEMQ_HOME "$ACTIVEMQ_HOME" is invalid.
      echo UIMACPP SDK was not built.
      exit
   fi
   echo "checking $APU_HOME"
   if [ ! -d "$APU_HOME"/lib ]; then
      echo ERROR: APU_HOME "$APU_HOME"  is invalid.
      echo UIMACPP SDK was not built.
      exit
   fi
fi


mkdir "$UIMA_DIR"
mkdir "$UIMA_DIR"/bin
mkdir "$UIMA_DIR"/data
mkdir "$UIMA_DIR"/docs
mkdir "$UIMA_DIR"/include
mkdir "$UIMA_DIR"/include/uima
mkdir "$UIMA_DIR"/lib
#mkdir "$UIMA_DIR"/licenses

UNAME=`uname -s`
if [ "$UNAME" = "Darwin" ]; then
  CPL=-p
  CPLR=-pR
  LIBEXT=dylib
else
  CPL=-pl
  CPLR=-pdr
  LIBEXT=so
fi

echo copying from "$UIMA_INSTALLDIR"...
cp -p  "$UIMA_INSTALLDIR/bin/runAECpp" "$UIMA_DIR"/bin/
if [ ! "$ACTIVEMQ_HOME" = "" ]; then
  cp -p  "$UIMA_INSTALLDIR/bin/deployCppService" "$UIMA_DIR"/bin/
fi

cp $CPLR "$UIMA_INSTALLDIR"/data  "$UIMA_DIR"/
cp -p "$UIMA_INSTALLDIR"/include/uima/* "$UIMA_DIR"/include/uima/
eval cp $CPLR "$UIMA_INSTALLDIR"/lib/libuima*.$LIBEXT"*"  "$UIMA_DIR"/lib/
if [ "$UNAME" = "Darwin" ]; then
  thisDir=`pwd`
  cd "$UIMA_DIR"/lib && ln -s libuima.dylib  libuima.jnilib
  cd $thisDir
fi
	
echo copying from "$UIMACPP_SOURCE/docs"...
cp -p "$UIMACPP_SOURCE"/docs/overview_and_setup.html "$UIMA_DIR"/docs/
cp -p "$UIMACPP_SOURCE"/docs/uimadoxytags.tag  "$UIMA_DIR"/docs/
cp $CPLR "$UIMACPP_SOURCE"/docs/html "$UIMA_DIR"/docs/

cp $CPLR "$UIMACPP_SOURCE"/examples "$UIMA_DIR"/

# copy following files from fvt suite
cp $CPL "$UIMACPP_SOURCE"/src/test/src/SofaStreamHandlerFile.cpp "$UIMA_DIR"/examples/src/
cp $CPL "$UIMACPP_SOURCE"/src/test/src/SimpleTextSegmenter.cpp "$UIMA_DIR"/examples/src/
cp $CPL "$UIMACPP_SOURCE"/src/test/src/MeetingAnnotator.cpp "$UIMA_DIR"/examples/tutorial/src/
find $UIMA_DIR/examples -type f -iname '*.sln' -exec rm -f {} \;
find $UIMA_DIR/examples -type f -iname '*.vcproj' -exec rm -f {} \;
find $UIMA_DIR/examples -type f -iname '*.cmd' -exec rm -f {} \;


cp $CPL "$UIMACPP_SOURCE/src/base.mak" "$UIMA_DIR"/lib/
	
echo copying APR from "$APR_HOME"...
cp $CPLR  "$APR_HOME"/include/apr-* "$UIMA_DIR"/include/
eval cp $CPLR "$APR_HOME"/lib/libapr*.$LIBEXT"*" "$UIMA_DIR"/lib/

echo copying ICU from "$ICU_HOME"...
cp $CPLR "$ICU_HOME"/include/unicode "$UIMA_DIR"/include/
eval cp $CPLR "$ICU_HOME"/lib/libicuio*.$LIBEXT"*" "$UIMA_DIR"/lib/
eval cp $CPLR "$ICU_HOME"/lib/libicuuc*.$LIBEXT"*" "$UIMA_DIR"/lib/
eval cp $CPLR "$ICU_HOME"/lib/libicui18n*.$LIBEXT"*" "$UIMA_DIR"/lib/
eval cp $CPLR "$ICU_HOME"/lib/libicudata.$LIBEXT"*" "$UIMA_DIR"/lib/
	
echo copying Xerces from "$XERCES_HOME"...
cp $CPLR "$XERCES_HOME"/include/xercesc "$UIMA_DIR"/include/
eval cp $CPLR "$XERCES_HOME"/lib/libxerces-c*.$LIBEXT"*" "$UIMA_DIR"/lib/

if [ ! "$ACTIVEMQ_HOME" = "" ]; then
  echo copying ActiveMQ from "$ACTIVEMQ_HOME"...
  eval cp $CPLR "$ACTIVEMQ_HOME"/lib/libactivemq-cpp*.$LIBEXT"*" "$UIMA_DIR"/lib/
  echo copying APR-Util from "$APU_HOME"...
  eval cp $CPLR "$APU_HOME"/lib/libaprutil*.$LIBEXT"*" "$UIMA_DIR"/lib/
fi

echo copying the scriptators...
SCRIPTATORS_HOME=$UIMACPP_SOURCE/scriptators
cp $CPLR "$SCRIPTATORS_HOME" "$UIMA_DIR"/
cp -p "$SCRIPTATORS_HOME"/perl/Perl.html "$UIMA_DIR"/docs/
cp -p "$SCRIPTATORS_HOME"/python/Python.html "$UIMA_DIR"/docs/
cp -p "$SCRIPTATORS_HOME"/tcl/Tcl.html "$UIMA_DIR"/docs/

copylicenses

find "$UIMA_DIR" -name .svn | xargs rm -rf {}
find "$UIMA_DIR" -name '*~' | xargs rm -f {}

echo DONE. UIMACPP SDK image is in "$UIMA_DIR".
