В настоящее время я пытаюсь создать систему сборки на основе Scons, которая будет использовать драйвер Boost Wave в качестве специального препроцессора кода C ++. После предварительной обработки код компилируется с помощью MSVC. На данный момент я запускаю волну для каждого исходного файла, видимого Scons, из файла Sconscript. Это работает, но имеет проблему - это довольно медленно, потому что не использует кеш компиляции Scons.
Как бы вы порекомендовали интегрировать пользовательский шаг предварительной обработки в систему сборки SCons таким образом, чтобы использовался кеш компиляции? Очевидно, мне также нужно правильное сканирование зависимостей #include, параллельная компиляция и т. Д. Я не очень разбираюсь в SCons, поэтому ищу кого-нибудь, кто укажет мне правильное направление.
В настоящее время я занимаюсь двумя направлениями исследований:
- Найти способ вызвать функции кеширования ввода / вывода вручную, но это рискованно - я не хочу загрязнять кеш недопустимыми записями.
- Создание специального инструмента / псевдобилдера / чего-то, что позволило бы мне выполнять две команды. Или попробуйте заставить бра использовать два инструмента / псевдостройки. Это кажется сложным.
- Ответ Тома Таннера, который, похоже, страдает от неправильного определения зависимостей #include.