| # 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 "----------------------------------------" |
| } |