I have a simple example that looks like this: workdir/ ├── Scripts ├── dir_a/ │ ├── dut.pro │ └── dut.vhd ├── dir_b/ │ ├── dut.pro │ └── dut.vhd └── run.do Both "dut.pro" files have the same content: ><PRE> >library DutLib >analyze ./dut.vhd >simulate e</PRE> Both "dut.vhd" only print "A" or "B". Macro "run.do": ><PRE>source ./Scripts/StartUp.tcl > >SetLibraryDirectory ./dir_a >build ./dir_a/dut.pro > >SetLibraryDirectory ./dir_b >build ./dir_b/dut.pro</PRE> My intention was to create library "DutLib" for A in dir_a and "DutLib" for B in dir_b. I'm running Riviera-PRO from workdir. Results are as expected but it seems that in both cases the same library is used: ><PRE>library DutLib (...)/workdir/<b>dir_a</b>/VHDL_LIBS/tool_ver</PRE> I thought that "SetLibraryDirectory ./dir_b" will make the second "build" command create the library in dir_b, but it seems that library names stored in variables like ::osvvm::LibraryList have priority over this. I don't want to delete the library in dir_a so procedures like "RemoveAllLibraries" don't solve the problem. My WA is to use below commands in "run.do": ><PRE>if {[info exists ::osvvm::VhdlWorkingLibrary]} { > unset ::osvvm::VhdlWorkingLibrary >} >if {[info exists ::osvvm::LibraryList]} { > unset ::osvvm::LibraryList >} >if {[info exists ::osvvm::LibraryDirectoryList]} { > unset ::osvvm::LibraryDirectoryList >}</PRE> Is there a simpler way/command to "unlink" libraries without deleting them?