@@ -46,29 +46,36 @@ namespace eval ::osvvm {
4646# -------------------------------------------------
4747# FindOsvvmSettingsDirectory
4848#
49- proc FindOsvvmSettingsDirectory {} {
50-
51- if {[info exists ::env(OSVVM_SETTINGS_DIR)]} {
52- # if OSVVM_SETTINGS_DIR has an absolute path, CurrentSimulationDirectory/OsvvmHomeDirectory is ignored
53- if {$::osvvm::SettingsAreRelativeToSimulationDirectory } {
54- set SettingsDirectory [file join ${::osvvm::CurrentSimulationDirectory} $::env(OSVVM_SETTINGS_DIR) ${::osvvm::OsvvmSettingsSubDirectory} ]
49+ proc FindOsvvmSettingsDirectory {{Subdirectory " osvvm" }} {
50+ # note that OsvvmSettingsSubDirectory is "" for Scripts
51+ if {! $::osvvm::SettingsAreRelativeToSimulationDirectory } {
52+ if {[info exists ::env(OSVVM_SETTINGS_DIR)]} {
53+ set SettingsDirectory [file normalize [file join ${::osvvm::OsvvmHomeDirectory} $::env(OSVVM_SETTINGS_DIR) ${::osvvm::OsvvmSettingsSubDirectory} ]]
54+ } elseif {[file isdirectory ${::osvvm::OsvvmHomeDirectory} /../OsvvmSettings]} {
55+ set SettingsDirectory [file normalize [file join ${::osvvm::OsvvmHomeDirectory} /../OsvvmSettings ${::osvvm::OsvvmSettingsSubDirectory} ]]
5556 } else {
56- set SettingsDirectory [file join ${::osvvm::OsvvmHomeDirectory} $::env(OSVVM_SETTINGS_DIR) ${::osvvm::OsvvmSettingsSubDirectory} ]
57+ puts " Caution: Putting setting in OsvvmLibraries directory structure"
58+ set SettingsDirectory [file join ${::osvvm::OsvvmHomeDirectory} ${Subdirectory} ${::osvvm::OsvvmSettingsSubDirectory} ]
5759 }
5860 } else {
59- if {$::osvvm::SettingsAreRelativeToSimulationDirectory } {
60- set SettingsDirectory [file join ${::osvvm::CurrentSimulationDirectory} ${::osvvm::OsvvmSettingsSubDirectory} ]
61+ puts " Warning: ::osvvm::SettingsAreRelativeToSimulationDirectory is false for Script settings and true for VHDL Settings"
62+ if {[info exists ::env(OSVVM_SETTINGS_DIR)]} {
63+ set SettingsDirectory [file normalize [file join ${::osvvm::CurrentSimulationDirectory} $::env(OSVVM_SETTINGS_DIR) ${::osvvm::OsvvmSettingsSubDirectory} ]]
64+ } elseif {[file isdirectory ${::osvvm::CurrentSimulationDirectory} /../OsvvmSettings]} {
65+ set SettingsDirectory [file normalize [file join ${::osvvm::CurrentSimulationDirectory} /../OsvvmSettings ${::osvvm::OsvvmSettingsSubDirectory} ]]
6166 } else {
62- set SettingsDirectory [file join ${::osvvm::OsvvmHomeDirectory} " osvvm " ${::osvvm::OsvvmSettingsSubDirectory} ]
67+ set SettingsDirectory [file join ${::osvvm::CurrentSimulationDirectory} ${Subdirectory} ${::osvvm::OsvvmSettingsSubDirectory} ]
6368 }
6469 }
70+
6571 CreateDirectory $SettingsDirectory
6672# set RelativeSettingsDirectory [::fileutil::relative [pwd] $SettingsDirectory]
6773# return $RelativeSettingsDirectory
6874 # Needs to be a normalized path
6975 return $SettingsDirectory
7076}
7177
78+
7279# -------------------------------------------------
7380# CreateOsvvmScriptSettingsPkg
7481#
0 commit comments