Настройка SCons для иерархического источника, но с одной целью

У меня есть проект C ++ / Python, над которым я работал и до сих пор полагался на Visual Studio для управления сборками. Теперь я хочу автоматизировать процесс сборки, надеюсь, включить поддержку нескольких платформ (все это стандартный C ++ / Python), и думаю, что SCons может быть инструментом для выполнения этой работы.

Используется много исходных файлов в нескольких каталогах, но типичный (стерео) пример выглядит следующим образом:

foo.lib
  directory_1
    bar1_1.cpp
    bar1_2.cpp
    ... etc. ...
  directory_2
    bar2_1.cpp
    bar2_2.cpp
    ... etc. ...

Другими словами, исходные файлы находятся в иерархии, но есть только одна цель. (Иерархия совпадает с пространствами имен, используемыми в коде, но это излишне для целей данного вопроса.)

Мой вопрос: как лучше всего структурировать файлы SConstruct и SConscript? Я прочитал документацию SCons, в частности, раздел «Иерархические сборки» и идею использования нескольких файлов SConscript с подходящими вызовами «SConscript». Все кажется ясным и особенно аккуратным. Однако может показаться, что это предназначено для иерархии с несколькими целями. Могу ли я использовать эту же функцию там, где есть только одна цель?

(Я думал о файле SConstruct / SConscript верхнего уровня, по крайней мере, для рассматриваемой библиотеки, в котором перечислены все исходные файлы с подкаталогами, но не "ощущается" «лучший способ сделать это. Может быть, это действительно путь вперед?»

Заранее большое спасибо за любой совет / понимание.

5
задан bitcyber 10 January 2012 в 20:58
поделиться