#!/bin/bash

source .github/travis/common.sh
set -e

$SPACER

if [ "_${_COVERITY_EMAIL}" == "_" ] ||
[ "_${_COVERITY_URL}" == "_" ] ||
[ "_${_COVERITY_MD5}" == "_" ]
then
  echo "_COVERITY_EMAIL, _COVERITY_URL and _COVERITY_MD5 must be set before using this script"
  exit 1
fi

build_root=${PWD}

##########################
# download coverity tool
start_section "coverity download" "${GREEN}Downloading coverity tool..${NC}"

mkdir -p ${HOME}/coverity
cd ${HOME}/coverity

# get coverity and extract it
wget --quiet ${_COVERITY_URL} --post-data="token=${COVERITY_SCAN_TOKEN}&project=Verilog+to+Routing" -O coverity.tar.gz
echo "${_COVERITY_MD5} coverity.tar.gz" | md5sum -c -
tar xzf coverity.tar.gz
rm -f coverity.tar.gz

# export the coverity tool
coverity_dir=$(ls -d cov-analysis-linux64*)
export PATH="${PATH}:${HOME}/coverity/${coverity_dir}/bin"
which cov-build

# make sure we use the compiler so we clear the cache, disable ccache and remove it from the path
ccache --clear
export CCACHE_DISABLE=1
export PATH=${PATH/'/usr/bin/ccache:'/}
export PATH=${PATH/':/usr/lib/ccache'/}

#tell coverity about the CC compiler used
cov-configure --template --compiler ${CC} --comptype gcc


cd ${build_root}

end_section "coverity download"


$SPACER


#######################
# build with coverity
start_section "coverity.vtr.build" "${GREEN}Building..${NC}"

# make sure we use the compiler so we clear the cache

# remove old files in case they exist (usefull if we run this locally)
rm -f CMakeCache.txt
rm -Rf build

# prepare the build
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=debug -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on ..

# now build and scan
cov-build --dir cov-int make -j$(nproc --all)

end_section "coverity.vtr.build"


$SPACER


#######################
# export to coverity
start_section "coverity.export" "${GREEN}Exporting..${NC}"

tar -czvf vtr_coverity.tar.gz cov-int

curl --form token=${COVERITY_SCAN_TOKEN} \
  --form email=${_COVERITY_EMAIL} \
  --form file=@vtr_coverity.tar.gz\
  --form version="master branch head" \
  --form description="$(git log -1|head -1)" \
  https://scan.coverity.com/builds?project=Verilog+to+Routing

end_section "coverity.export"


$SPACER
