Можно ли использовать SCons для создания целей из исходных файлов с неопределенными именами? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть каталог с несколькими исходными файлами с неопределенным именем.Единственное, что я знаю, это расширение файла.Я хочу взять каждый исходный файл и построить одну цель из каждого.В настоящее время я использую метод, чтобы определить имя каждого источника с помощью цикла for:

targets = []
for file in listdir('.'):
    if file.endswith('.xdm'): 
        targets += env.m4(source=file)

Преимущество этого заключается в том, что SConscript не должен поддерживатьсяразработчики, как они добавляют новые источники.Проблема в том, что цели больше не очищаются из-за , что связано с зависимостями , которые я не совсем понимаю.

Так что мой вопрос в том, есть ли более подходящий способ сделать это, используя встроенную функциональность SCons , не полагаясь на более традиционное управление потоком, или я должен просто убедиться, что каждый из моихисточники определены и перечислить их индивидуально в SConscript?

1 Ответ

0 голосов
/ 04 марта 2019

Вместо того, чтобы возиться с listdir, я бы просто использовал метод Glob(), как предусмотрено самим SCons :

for file in Glob("*.xdm"):
    env.m4(source=file)

Это (как пример из вашего вопроса)это идеальный подход, поскольку он использует тот факт, что SConscripts на самом деле Python сценарии.Подход Glob() имеет то преимущество, что он также находит *.xdm файлы, которые еще не существуют на жестком диске, но могут быть созданы как часть процесса сборки позже.

Интересно, какие проблемы у вас возникают?упомянуто, относительно очистки целей.Вопросы и ответы, связанные в вашем вопросе выше, кажутся мне не связанными.Если вы столкнулись с реальными проблемами «очистки» с помощью одного из вышеуказанных подходов, пожалуйста, оставьте отдельный вопрос вместе с полным дословным вводом и выводом.Если получится, что это не работает "из коробки", я бы посчитал это ошибкой.

...