#!/bin/bash
set -e
source $(cd $(dirname ${BASH_SOURCE[0]}) && pwd)/env_check.sh
TARGZ_NAME=boostkit-omniop-operator-2.2.0-aarch64
ZIP_NAME=BoostKit-omniop_2.2.0
if [ "$1" = 'help' ] || [ "$1" = '--help' ]; then
print_usage
exit 0
fi
check_java_home
check_omni_home
echo "Start building modules using $1"
echo "-- Enter" $(dirname $(readlink -f $0))
CWD=$(pwd)
case "$1" in
package)
setup_dependencies package
echo "-- Package without test"
cd ${CWD} && build release:java --exclude-test
cd $CWD/bindings/java && mvn clean install -Domni.home=$OMNI_HOME -DskipTests
cd $CWD/core/src/udf/java && mvn clean install -DskipTests
cd $CWD
[ -d "$TARGZ_NAME" ] && rm -rf $TARGZ_NAME
[ -f "$TARGZ_NAME.tar.gz" ] && rm -rf $TARGZ_NAME.tar.gz
[ -f "$ZIP_NAME.zip" ] && rm -rf $ZIP_NAME.zip
cp -r $OMNI_HOME/lib $TARGZ_NAME
cp $CWD/bindings/java/target/*-aarch64.jar $TARGZ_NAME
cp $CWD/core/src/udf/java/target/*-aarch64.jar $TARGZ_NAME
tar --owner root --group root -zcvf $TARGZ_NAME.tar.gz $TARGZ_NAME
zip $ZIP_NAME.zip $TARGZ_NAME.tar.gz
;;
release)
setup_dependencies release
echo "-- Only build"
cd ${CWD} && build release:java --exclude-test
cd $CWD/bindings/java && mvn clean install -Domni.home=$OMNI_HOME -DskipTests
cd $CWD/core/src/udf/java && mvn clean install -DskipTests
;;
test)
setup_dependencies
echo "-- Enable build and test"
cd ${CWD} && build release:java
$CWD/build/core/test/omtest --gtest_output=xml:test_detail.xml
cd $CWD/bindings/java && mvn clean install -Domni.home=$OMNI_HOME
cd $CWD/core/src/udf/java && mvn clean install
;;
coverage-java)
echo "-- Enable coverage for java"
cd ${CWD} && build release:java
cd $CWD/bindings/java && mvn clean install devtestcov:atest -Domni.home=$OMNI_HOME -Dactive.devtest=true -Dmaven.test.failure.ignore=true -Djacoco-agent.destfile=target/jacoco.exec -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
cd $CWD/core/src/udf/java && mvn clean install
;;
coverage-c++)
echo "-- Enable coverage for c++"
cd ${CWD} && build coverage:java
$CWD/build/core/test/omtest --gtest_output=xml:${CWD}/core/build/test_detail.xml
lcov --d $CWD/build --c --output-file test.info --rc lcov_branch_coverage=1
lcov --remove test.info '*/opt/buildtools/include/*' '*/usr/include/*' '*/usr/lib/*' '*/usr/lib64/*' '*/usr/local/include/*' '*/usr/local/lib/*' '*/usr/local/lib64/*' '*/test/*' -o final.info --rc lcov_branch_coverage=1
genhtml final.info -o ${CWD}/core/build/test_coverage --branch-coverage --rc lcov_branch_coverage=1
;;
coverage)
setup_dependencies package
echo "-- Package asan without test"
cd ${CWD} && build coverage:java --exclude-test
cd $CWD/bindings/java && mvn clean install -Domni.home=$OMNI_HOME -DskipTests
cd $CWD/core/src/udf/java && mvn clean install -DskipTests
cd $CWD
[ -d "$TARGZ_NAME" ] && rm -rf $TARGZ_NAME
[ -f "$TARGZ_NAME.tar.gz" ] && rm -rf $TARGZ_NAME.tar.gz
[ -f "$ZIP_NAME.zip" ] && rm -rf $ZIP_NAME.zip
cp -r $OMNI_HOME/lib $TARGZ_NAME
cp $CWD/bindings/java/target/*-aarch64.jar $TARGZ_NAME
cp $CWD/core/src/udf/java/target/*-aarch64.jar $TARGZ_NAME
tar --owner root --group root -zcvf $TARGZ_NAME.tar.gz $TARGZ_NAME
zip $ZIP_NAME.zip $TARGZ_NAME.tar.gz
;;
*)
echo "-- Enable default options"
cd ${CWD} && build release:java
$CWD/build/core/test/omtest --gtest_output=xml:${CWD}/core/build/test_detail.xml
cd $CWD/bindings/java && mvn clean -Domni.home=$OMNI_HOME install
cd $CWD/core/src/udf/java && mvn clean install
;;
esac