Я пытаюсь автоматизировать рабочий процесс со SCons, где несколько сценариев полагаются на файл проекта, который, в свою очередь, ссылается на несколько исходных файлов. Только сценарии имеют реальное действие по строительству, в проекте нет ничего общего; он просто содержит имена файлов.Зависит от целевой цели
Чтобы уменьшить избыточность, я хотел бы извлечь имя файла проекта из файлов сценариев и извлечь имена исходных файлов из файла проекта. Я использую пользовательский Scanner()
для этого, которое хорошо работает и дает мне --tree=status
зависимость, как я представляю их, т.е.
[E B C ]+-output.log
[E ] +-script.tcl
[E ] +-project.prj
[E C ] +-source1
[E C ] +-source2
(and so on for other scripts)
Однако, если я касаюсь исходного файла, никаких действий сборки не срабатывают. Я играл с Depends()
, SideEffect()
и другими, но я, кажется, неправильно понимаю что-то здесь. Только обходные я могу думать прямо сейчас
- есть пользовательский конструктор для моего проекта, который будет просто выводить фиктивный файл, и есть сценарии зависят от того, как «источник»,
- помошью двух Сканеры (для сценариев и проектов) в один, чтобы исключить дополнительный уровень.
Есть ли другой способ правильно моделировать это с помощью SCons?