Да, вы просто обновили бы свою систему сборки, чтобы иметь шаг предварительной обработки, шаг запутывания, а затем шаг компиляции в объект. По умолчанию большинство систем сборки просто объединяют все эти действия в один шаг (и пропускают этап запутывания). Не должно быть ничего страшного с любой "реальной" системой сборки, такой как Scons, waf или даже Make.
Если вы используете Visual Studio, тогда это немного больше работы. Microsoft хочет, чтобы вы написали свои операции сборки в MSBuild, и это немало работы, ИМХО. Это непросто, потому что MSVS является преимущественно IDE для итеративной разработки и НЕ предназначен для сборки. Он не является и никогда не будет инструментом сборки (даже если он «строит вещи», а только стандартные и очень простые «строит вещи»). Но вы все равно можете использовать IDE с другим инструментом сборки. Например, мы используем Scons для нашей сборки, и она генерирует файлы MSVS *.sln
и *.vcproj
, и эти файлы просто создаются с помощью Scons (но все файлы редактируются в MSVS IDE).
Простой ответ: Ваш вопрос очень просто проблема с операциями сборки. Это должно быть очень просто с любой не "игрушечной" системой сборки.
distcc (инструмент распределенной сборки) эффективно предварительно обрабатывает все файлы локально, затем отправляет *.i
удаленным компиляторам (которым даже не требуются установленные заголовки), а затем отправляет обратно *.obj
. Итак, то, о чем вы говорите, довольно просто.