#!/bin/sh
#
# Copyright (C) 2005-2020 Centre National d'Etudes Spatiales (CNES)
#
# This file is part of Orfeo Toolbox
#
#     https://www.orfeo-toolbox.org/
#
# Licensed 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.
#
set -e

# verify basic tools are here
which sh >/dev/null 2>&1 || ret=$?
if [ ! -z "$ret" ] ; then echo "ERROR: Missing tool 'which'"; exit 1 ; fi
for tool in dirname find file grep cut sed chmod cat readlink ; do
  if [ -z "$(which $tool)" ] ; then
    echo "ERROR: Missing tool '${tool}'"
    echo "Please install it and make sure it can be found from PATH"
    exit 1;
  fi
done

DIRNAME_0=$(dirname "$0")
cd  "$DIRNAME_0"

# NOTE: $OUT_DIR is also used in make_sylinks script (see below)
# Avoid any pre-mature optimization on variable names here.

OUT_DIR=$(pwd)

#do not move below block. it must be before "unset LD_LIBRARY_PATH" code
#check if we have any python bindings
if [ -f "$OUT_DIR/lib/python/_otbApplication.so" ] ; then
    chmod +x "$OUT_DIR/setup_python.sh"
    ./setup_python.sh || setup_python_ret=$?
fi

# No no interference with LD_LIBRARY_PATH
unset LD_LIBRARY_PATH

# we remove files in $OUT_DIR/lib/gtk which we CANNOT add new rpath
BINARY_FILES=$(find "./lib" "./bin" "./plugins" -type f -exec file {} \; | grep -v '/lib/gtk/' | grep -i ': elf ' | cut -f1 -d':')
# run patchelf
for bin_file in $BINARY_FILES; do
    #echo "adding rpath to $bin_file"
    ./patchelf "--set-rpath" "$OUT_DIR/lib" "$bin_file"
done

#install uninstall_otb script
echo "Installing uninstall script for OTB 'tools/uninstall_otb.sh'"
sed -i -E "s,OUT_DIR,$OUT_DIR,g" "$OUT_DIR/tools/uninstall_otb.sh"
chmod +x "$OUT_DIR/tools/uninstall_otb.sh"

sed -i -E  "s,OUT_DIR,$OUT_DIR,g" "$OUT_DIR/monteverdi.sh"
chmod +x "$OUT_DIR/monteverdi.sh"

sed -i -E "s,OUT_DIR,$OUT_DIR,g" "$OUT_DIR/mapla.sh"
chmod +x "$OUT_DIR/mapla.sh"

sed -i -E "s,OUT_DIR,$OUT_DIR,g" "$OUT_DIR/otbenv.profile"
chmod +x "$OUT_DIR/otbenv.profile"

sed -i  -E "s,Prefix=..,Prefix=$OUT_DIR,g" "$OUT_DIR/bin/qt.conf"

#echo "Creating symbolic links..."
. ./make_symlinks

rm -f  "$OUT_DIR/make_symlinks"

printf %s\\n ""
printf %s\\n "source './otbenv.profile' file to set required environment variables"
printf %s\\n "eg: '. $OUT_DIR/otbenv.profile'"
printf %s\\n "You can also copy above line to  ~/.profile to keep changes permanently!"
printf %s\\n "More documentation can be found in $OUT_DIR/README"


#rm -f  "$OUT_DIR/make_symlinks"
rm -f  "$OUT_DIR/patchelf"
rm -f  "$OUT_DIR/setup_python.sh"
rm -f  "$OUT_DIR/pkgsetup"

