Allow having multiple tmp_dir values

Defining a separate tmp_dir directory per project (or that depends on other options) is currently not working: the value of tmp_dir is evaluated on the first use of a temporary directory, cached and not evaluated again on following uses.