Генерация кода WAF с использованием нескольких зависимых входных файлов - PullRequest
2 голосов
/ 19 марта 2019

Как лучше всего использовать WAF (https://waf.io/) для следующего сценария?

model1.m + model2.m -> Генератор кода -> много файлов .h & .cpp --> compile

  • model1.m и model2.m должны обрабатываться вместе.
  • Генератор кода очень медленный, и мы должны генерировать / компилировать только если файлы изменились.

Мой текущий подход заключается в создании функции, которая поддерживает следующее:

def build(bld):
    bld.shlib(
        features='cxx gen_messaging', 
        name="messages",
        source='model1.m model2.m')

Эта функция в основном получает файлы модели из self.source, а затем запускает генерацию кода и, наконец,добавление нового источника в self.source.

Что мне не хватает, так это обнаружения изменений файлов модели. Пожалуйста, сообщите мне.

1 Ответ

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

Полагаю, вы сделали что-то вроде https://waf.io/book/#_mixing_extensions_and_c_c_features. Таким образом, это должно работать.Но так как вы упомянули требование о том, что модели должны обрабатываться вместе, я предполагаю, что вы разработали определенный класс Task.В этом случае вы должны написать код, подобный https://waf.io/book/#_custom_tasks.. Важным моментом является правильная обработка подписей в методах run() AND runnable_status().

...