Vivadoを使用する際にのみVivadoへパスを通す(Zsh編)
settings64.shをsourceしてVivadoへパスを通すと,gccやらcmakeが全てXilinxディレクトリの下にあるものになってしまう. そこで以前Qiitaにて,Vivadoを使用する際にのみVivadoへパスを通す方法について投稿した.
当該記事:Vivadoの使用中にのみVivadoへのパスを通す
このときはBashを使っていたのだが,私は最近はもっぱらZshを使っている. Zshであっても同じように,Vivadoを使用する際にのみVivadoへパスを通すことができる.
.zshrcに以下の記述をする.
# vivado
function vivado(){
source /path/to/Xilinx/Vivado/201x.x/settings64.sh
# activate
/path/to/Xilinx/Vivado/201x.x/bin/vivado $@
# remove path
xilinx_path=(`echo $PATH | tr ":" "\n" | grep "^/path/to/Xilinx"`)
for ((i = 0; i <= ${#xilinx_path[@]}; i++)); do
export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: '$0 != "'${xilinx_path[$i]}'"' | sed 's/:$//'`
done
}
# vivado hls
function vivado_hls(){
source /path/to/Xilinx/Vivado/201x.x/settings64.sh
# activate
/path/to/Xilinx/Vivado/201x.x/bin/vivado_hls $@
# remove path
xilinx_path=(`echo $PATH | tr ":" "\n" | grep "^/path/to/Xilinx"`)
for ((i = 0; i <= ${#xilinx_path[@]}; i++)); do
export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: '$0 != "'${xilinx_path[$i]}'"' | sed 's/:$//'`
done
}
settings64.shはbashのスクリプトだが,Zshでsourceしても動いた. “/path/to"の部分はVivadoをインストールしたパスにすること. “201x.x"も同様に,使っているバージョンに合わせること.
vivadoの呼び出しが絶対パスになっているが,もちろんここを単に"vivado"としないこと. ここで定義したvivado関数を永久に再帰呼び出しする羽目になる.