使用scons将构建产品移动到不同的目录中

时间:2011-10-19 08:51:41

标签: scons

考虑以下代码段

env = Environment()
env.PDF(target="personal_statement.pdf", source="personal_statement.tex")
env.Command("documents/personal_statement.pdf", "personal_statement.pdf", Copy('$TARGET', '$SOURCE'))

如果我将target中的env.PDF设置为“documents / personal_statement.pdf”,则LaTeX编译将在“documents / personal_statement.pdf”中进行。我只想要最终输出,即“personal_statement.pdf”出现在“documents / personal_statement.pdf”中。 目前我分两步完成这项工作。步骤1:编译文件,步骤2:将生成的PDF移动到另一个目录。 是否有一种方法可以一步完成,而不是使用两个步骤?

1 个答案:

答案 0 :(得分:1)

分两步执行此操作的限制与pdflatex而非SCons更相关。 pdflatex具有-output-directory选项,但它会将所有内容(包括所有临时文件)写入该目录。

虽然您的示例代码段可能有效,但我认为更典型的方法是使用“安装”构建器。

env = DefaultEnvironment()
dst = env.PDF("personal_statement.tex")
inst = env.Install("documents",dst)
Default(inst)