| # Make stderr and stdout line buffered. | |
| # stdbuf -i0 -oL -eL | |
| # Close STDERR FD | |
| exec 2<&- | |
| # Redirect STDERR to STDOUT | |
| exec 2>&1 | |
| # Some colors, use it like following; | |
| # echo -e "Hello ${YELLOW}yellow${NC}" | |
| GRAY='\033[0;90m' | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[0;33m' | |
| PURPLE='\033[0;35m' | |
| NC='\033[0m' # No Color | |
| if [ -z "$DATESTR" ]; then | |
| if [ -z "$DATESHORT" ]; then | |
| export DATESTR=$(date -u +%Y%m%d%H%M%S) | |
| echo "Setting long date string of $DATESTR" | |
| else | |
| export DATESTR=$(date -u +%y%m%d%H%M) | |
| echo "Setting short date string of $DATESTR" | |
| fi | |
| fi | |
| make_target () { | |
| target=$1 | |
| max_fail_tests=${3:-1} | |
| export MAX_CORES=${MAX_CORES:-$(nproc)} | |
| export VPR_NUM_WORKERS=${MAX_CORES} | |
| echo "MAX_CORES: $MAX_CORES" | |
| start_section "$2" | |
| ninja_status=0 | |
| ninja -k$max_fail_tests -j${MAX_CORES} $target || ninja_status=$? | |
| end_section | |
| # When the build fails, produce the failure output in a clear way | |
| if [ ${MAX_CORES} -ne 1 -a $ninja_status -ne 0 ]; then | |
| start_section "${RED}Build failure output..${NC}" | |
| ninja -j1 $target | |
| end_section | |
| exit 1 | |
| fi | |
| return $ninja_status | |
| } | |
| start_section () { | |
| echo -e "::group::${PURPLE}[F4PGA] Architecture Definitions${NC}: - $1${NC}" | |
| SECONDS=0 | |
| echo -e "${GRAY}-------------------------------------------------------------------${NC}" | |
| } | |
| end_section () { | |
| echo -e "${GRAY}-------------------------------------------------------------------${NC}" | |
| echo '::endgroup::' | |
| duration=$SECONDS | |
| printf "${GRAY}took $(($duration / 60)) min $(($duration % 60)) sec.${NC}\n" | |
| } | |
| enable_vivado () { | |
| heading 'Creating Vivado Symbolic Link' | |
| ln -s /mnt/aux/Xilinx /opt/Xilinx | |
| ls /opt/Xilinx/Vivado | |
| export XRAY_VIVADO_SETTINGS="/opt/Xilinx/Vivado/$1/settings64.sh" | |
| source /opt/Xilinx/Vivado/$1/settings64.sh | |
| vivado -version | |
| } | |
| heading () { | |
| echo | |
| echo "========================================" | |
| echo "$@" | |
| echo "----------------------------------------" | |
| } |