перемещение продукта сборки в другой каталог с помощью scons - PullRequest
1 голос
/ 19 октября 2011

Рассмотрим следующий фрагмент

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 Ответ

1 голос
/ 28 ноября 2011

Ограничение выполнения этого в два шага больше связано с pdflatex, а не с SCons. У pdflatex есть опция -output-directory, но она либо запишет все (включая все временные файлы) в этот каталог.

Хотя ваш пример фрагмента может работать, я считаю, что более типичным подходом является использование компоновщика установки.

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