@@ -119,6 +119,9 @@ namespace eval hbs {
119119 # List with command line arguments passed to the run target.
120120 set RunTargetArgs " "
121121
122+ # Run target output build directory.
123+ set RunTargetBuildDir " "
124+
122125 # List containing regexes for excluding discovered .hbs files from being sourced.
123126 #
124127 # See also 'hbs doc AddFileIgnoreRegex'.
@@ -560,20 +563,20 @@ namespace eval hbs {
560563
561564 if {$hbs::cmd eq " dump-cores" } { return }
562565
563- if {$hbs::targetDir == " " } {
566+ if {$hbs::RunTargetBuildDir == " " } {
564567 set prjName [regsub -all :: "$hbs::ThisCorePath \:\: $hbs::ThisTargetName " --]
565- set hbs::targetDir [file join $hbs::BuildDir $prjName ]
568+ set hbs::RunTargetBuildDir [file join $hbs::BuildDir $prjName ]
566569 }
567- if {[file exist $hbs::targetDir ] eq 0} {
568- file mkdir $hbs::targetDir
570+ if {[file exist $hbs::RunTargetBuildDir ] eq 0} {
571+ file mkdir $hbs::RunTargetBuildDir
569572 }
570573
571574 # Dump cores to JSON file.
572575 #
573576 # Replace "::" with "--".
574577 # Glib does not support ':' in file names.
575578 set fileName [string map {" ::" " --" } $hbs::RunTargetPath ].json
576- set filePath [file join $hbs::targetDir $fileName ]
579+ set filePath [file join $hbs::RunTargetBuildDir $fileName ]
577580 switch $hbs::Tool {
578581 # gw_sh changes working directory to project directory.
579582 " gowin" {
@@ -920,9 +923,6 @@ namespace eval hbs {
920923 exit 1
921924 }
922925
923- # Target output directory.
924- set targetDir " "
925-
926926 # Stage callbacks
927927 set preAnalCbs []
928928 set postAnalCbs []
@@ -1493,7 +1493,7 @@ namespace eval hbs::ghdl {
14931493 hbs::Debug " starting files analysis"
14941494
14951495 set workDir [pwd ]
1496- cd $hbs::targetDir
1496+ cd $hbs::RunTargetBuildDir
14971497
14981498 dict for {file args} $hbs::ghdl::vhdlFiles {
14991499 set lib [dict get $args lib]
@@ -1515,7 +1515,7 @@ namespace eval hbs::ghdl {
15151515
15161516 proc elaborate {} {
15171517 set workDir [pwd ]
1518- cd $hbs::targetDir
1518+ cd $hbs::RunTargetBuildDir
15191519
15201520 set cmd " ghdl -e $hbs::ArgsPrefix --std=[ hbs::ghdl::std] --workdir=work $hbs::ghdl::libs $hbs::ArgsSuffix $hbs::Top "
15211521 set err [hbs::Exec $cmd ]
@@ -1528,7 +1528,7 @@ namespace eval hbs::ghdl {
15281528
15291529 proc simulate {} {
15301530 set workDir [pwd ]
1531- cd $hbs::targetDir
1531+ cd $hbs::RunTargetBuildDir
15321532
15331533 set cmd " ./$hbs::Top $hbs::ArgsPrefix --wave=$hbs::Top .ghw [ hbs::ghdl::genericArgs] --assert-level=$hbs::ExitSeverity $hbs::ArgsSuffix "
15341534 set err [hbs::Exec $cmd ]
@@ -1618,7 +1618,7 @@ namespace eval hbs::gowin {
16181618 hbs::Eval $create_prj_cmd
16191619
16201620 # Set target directory for later use.
1621- set hbs::targetDir [file join $hbs::BuildDir $prjName ]
1621+ set hbs::RunTargetBuildDir [file join $hbs::BuildDir $prjName ]
16221622
16231623 hbs::Debug " gowin project created successfully"
16241624 } else {
@@ -1853,7 +1853,7 @@ namespace eval hbs::nvc {
18531853 hbs::Debug " starting files analysis"
18541854
18551855 set workDir [pwd ]
1856- cd $hbs::targetDir
1856+ cd $hbs::RunTargetBuildDir
18571857
18581858 dict for {file args} $hbs::nvc::vhdlFiles {
18591859 set lib [dict get $args lib]
@@ -1869,7 +1869,7 @@ namespace eval hbs::nvc {
18691869
18701870 proc elaborate {} {
18711871 set workDir [pwd ]
1872- cd $hbs::targetDir
1872+ cd $hbs::RunTargetBuildDir
18731873
18741874 set cmd " nvc $hbs::ArgsPrefix --std=$hbs::nvc::std $hbs::nvc::libs -e $hbs::Top [ hbs::nvc::genericArgs] $hbs::ArgsSuffix "
18751875 set err [hbs::Exec $cmd ]
@@ -1882,7 +1882,7 @@ namespace eval hbs::nvc {
18821882
18831883 proc simulate {} {
18841884 set workDir [pwd ]
1885- cd $hbs::targetDir
1885+ cd $hbs::RunTargetBuildDir
18861886
18871887 set cmd " nvc $hbs::ArgsPrefix --std=$hbs::nvc::std $hbs::nvc::libs -r $hbs::Top --wave --exit-severity=$hbs::ExitSeverity $hbs::ArgsSuffix "
18881888 set err [hbs::Exec $cmd ]
@@ -1956,8 +1956,8 @@ namespace eval hbs::vivado-prj {
19561956
19571957 proc setTool {} {
19581958 set prjName [regsub -all :: "$hbs::ThisCorePath \:\: $hbs::ThisTargetName " --]
1959- set hbs::targetDir [file join $hbs::BuildDir $prjName ]
1960- set create_prj_cmd " create_project $hbs::ArgsPrefix -force $prjName $hbs::targetDir $hbs::ArgsSuffix "
1959+ set hbs::RunTargetBuildDir [file join $hbs::BuildDir $prjName ]
1960+ set create_prj_cmd " create_project $hbs::ArgsPrefix -force $prjName $hbs::RunTargetBuildDir $hbs::ArgsSuffix "
19611961 if {$hbs::DryRun } {
19621962 hbs::Eval $create_prj_cmd
19631963 return
@@ -2279,7 +2279,7 @@ namespace eval hbs::xsim {
22792279 hbs::Debug " starting files analysis"
22802280
22812281 set workDir [pwd ]
2282- cd $hbs::targetDir
2282+ cd $hbs::RunTargetBuildDir
22832283
22842284 dict for {file args} $hbs::xsim::hdlFiles {
22852285 set ext [file extension $file ]
@@ -2295,7 +2295,7 @@ namespace eval hbs::xsim {
22952295
22962296 proc elaborate {} {
22972297 set workDir [pwd ]
2298- cd $hbs::targetDir
2298+ cd $hbs::RunTargetBuildDir
22992299
23002300 set cmd " xelab $hbs::ArgsPrefix -debug all [ hbs::xsim::genericArgs] $hbs::Top $hbs::ArgsSuffix "
23012301 set err [hbs::Exec $cmd ]
@@ -2308,7 +2308,7 @@ namespace eval hbs::xsim {
23082308
23092309 proc simulate {} {
23102310 set workDir [pwd ]
2311- cd $hbs::targetDir
2311+ cd $hbs::RunTargetBuildDir
23122312
23132313 set batchFile $hbs::xsim::tclBatchFile
23142314 if {$batchFile == " " } {
@@ -2515,7 +2515,7 @@ namespace eval hbs::questa {
25152515 hbs::Debug " starting files analysis"
25162516
25172517 set workDir [pwd ]
2518- cd $hbs::targetDir
2518+ cd $hbs::RunTargetBuildDir
25192519
25202520 dict for {file args} $hbs::questa::hdlFiles {
25212521 set ext [file extension $file ]
@@ -2531,7 +2531,7 @@ namespace eval hbs::questa {
25312531
25322532 proc simulate {} {
25332533 set workDir [pwd ]
2534- cd $hbs::targetDir
2534+ cd $hbs::RunTargetBuildDir
25352535
25362536 set doFile $hbs::questa::doFile
25372537 if {$doFile == " " } {
0 commit comments