When adding a Tcl file to any of the tcl.pre or tcl.post selections in the Project Settings for Synthesis or Implementation steps, an absolute path tothe TCL file is forced by the GUI, and is not updated if the project is moved to a new location. A relative path also cannot be entered. Under the TCL Console you will see (for example):
set_property steps.route_design.tcl.post {C:\projects\my_proj\my_proj.srcs\sources_1\test.tcl} [get_runs impl_1]
You can work around this issue by using the following commands in the TCL console of the GUI to make the paths relative:
set_property steps.route_design.tcl.post ..\..\my_proj.srcs\sources_1\test.tcl [get_runs impl_1]
Alternatively, you can script this whenmoving the location of the project to update the path of the project:
set project_path [get_property directory [current_project]]
set_property steps.route_design.tcl.post $project_path\..\..\my_proj.srcs\sources_1\test.tcl [get_runs impl_1]
This set_property command can be applied to any step that uses tcl.pre ortcl.post (synth_design, opt_design, power_opt_design, place_design, power_opt_design, phys_opt_design, route_design, write_bitstream).
This issue will be fixed in Vivado 2013.1.