Add local HLS dev setup: clangd, pragma highlighting + linting, local C-sim
This commit is contained in:
53
Practicals/hlsdev/fetch-headers.sh
Executable file
53
Practicals/hlsdev/fetch-headers.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copy the real Vitis HLS headers down from the CS server.
|
||||
#
|
||||
# Only header files are copied - a few MB, not the 60 GB toolchain - so clangd
|
||||
# and ./sim.sh work against the genuine ap_int.h / hls_stream.h instead of the
|
||||
# stand-in in hlsdev/include-stub.
|
||||
#
|
||||
# You will be asked for your gateway password / Duo approval, because the
|
||||
# server is behind the IT Services SSH gateway.
|
||||
#
|
||||
# Usage:
|
||||
# ./fetch-headers.sh # copy
|
||||
# ./fetch-headers.sh --dry-run # just report what is there and how big it is
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
inc="$here/include"
|
||||
host="${EMBS_HOST:-csteach0.york.ac.uk}"
|
||||
vitis="${VITIS_ROOT:-/opt/york/cs/net/xilinx_vivado-2025.1-x86_64-1/2025.1/Vitis}"
|
||||
|
||||
sim_inc="$vitis/include"
|
||||
syn_inc="$vitis/common/technology/autopilot"
|
||||
|
||||
echo "host : $host"
|
||||
echo "sim inc : $sim_inc"
|
||||
echo "syn inc : $syn_inc"
|
||||
echo
|
||||
|
||||
echo "Asking the server what is there ..."
|
||||
ssh "$host" "
|
||||
du -sh '$sim_inc' '$syn_inc' 2>/dev/null || true
|
||||
echo
|
||||
echo 'ap_int.h / hls_stream.h found at:'
|
||||
find '$sim_inc' '$syn_inc' -maxdepth 2 \\( -name ap_int.h -o -name hls_stream.h -o -name ap_fixed.h \\) 2>/dev/null
|
||||
" || { echo "error: could not reach $host" >&2; exit 1; }
|
||||
|
||||
if [ "${1:-}" = "--dry-run" ]; then
|
||||
echo
|
||||
echo "--dry-run: nothing copied."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p "$inc"
|
||||
echo
|
||||
echo "Copying headers (watch for the password prompt) ..."
|
||||
rsync -a --info=progress2 "$host:$sim_inc/" "$inc/"
|
||||
rsync -a --info=progress2 "$host:$syn_inc/" "$inc/"
|
||||
|
||||
echo
|
||||
echo "Done. $(find "$inc" -name '*.h' | wc -l | tr -d ' ') headers now in $inc"
|
||||
echo "clangd and ./sim.sh will use these in preference to the stub."
|
||||
Reference in New Issue
Block a user