Предположим, у меня есть цель A
, которая может быть построена только тогда, когда либо B
, либо C
уже созданы. Здание C
намного дороже, чем здание B
.несколько приоритетных способов удовлетворения зависимости
Как написать оптимальный файл SConstruct
, который удовлетворяет следующим ограничениям, когда я попрошу его построить A
.
- Если какая-либо
B
илиC
присутствует и UpToDate, непосредственно построитьA
- Если ни
B
, ниC
присутствует и UpToDate, сначала построитьB
, а затем построитьA
Если scons
не обеспечивает эта возможность, предоставляет ли какой-либо другой инструмент построения?
Если C всегда намного дороже, чем B, я бы серьезно подумал о том, чтобы никогда не строить C вообще. Сделайте B единственной зависимостью от A, и вы должны делать все правильно, основываясь на вашем описании проблемы, приведенной выше ... – dirkbaechle
Конечно, есть другие очень важные причины для создания C, когда я могу подождать. Я могу начать работать, как только будет построен B. Но я могу только быть уверенным, что моя работа правильная, когда C построен. –
Тогда ваше описание немного вводит в заблуждение, не так ли? Вы нигде не упоминаете, что вам, наконец, нужно построить с помощью «C», чтобы построить правильную версию «A». Помните, что SCons состоит в том, чтобы обеспечить правильные сборки в первую очередь ... Наконец, как должна строиться система, которая должна знать *, когда * точно вы хотите получить свой последний «A» (= использовать C) или когда вы все еще можете начать предварительную работу основанный на некорректном «A» (= использование B)? – dirkbaechle