Предположим, у вас есть сложное дерево исходников для проекта C, множество каталогов с множеством файлов.Сборка scons поддерживает несколько целей (i386, sparc, powerpc) и несколько вариантов (отладка, выпуск).В корне есть sconstruct
(ссылающийся на различные sconscripts
), который делает правильные вещи для всех из них, когда вызывается с аргументами, указывающими цель и вариант, например, scons target=i386 variant=release
.
Есть ли простой способопределить, какие исходные файлы (* .c и * .h) будет использовать каждая из этих сборок (все они немного отличаются)?Моя теория заключается в том, что scons все равно должен вычислять этот набор файлов, чтобы знать, какие файлы компилировать и когда перекомпилировать.Может ли он предоставить эту информацию?
Что я делаю не хочу сделать:
- Записать подробную сборку и выполнить ее постобработку (вероятно, не скажу *.h файлы в любом случае)
find . -name '*.[ch]'
также печатает ненужные файлы для юнит-тестирования и других целей и не относится к конкретным целям
В идеале я хотел бы сделать scons target=i386 variant=release printfileset
и посмотреть правильныесписок *. [ch] файлов.Этот список может затем использоваться в качестве входных данных для других инструментов, таких как doxygen.