Я хотел бы добавить собственный препроцессор для файлов .cpp в моем проекте Visual C ++ MSBuild.
В настоящее время я использую пользовательский шаг сборки, чтобы найти все файлы .cpp и переписать их (уничтожив исходный контент) перед их компиляцией. Это больше не приемлемо, так как препроцессор должен делать изменения «невидимыми» для разработчика (преобразование строк с помощью языка сценариев в настоящий код C ++).
Предварительная обработка должна быть выполнена "На лету". Зависимости не должны быть затронуты вообще. Пользовательский препроцессор может создавать директиву препроцессора #line, поэтому ошибки компилятора могут быть перенаправлены в исходный файл.
Мне кажется, что события сборки и пользовательские шаги сборки не являются жизнеспособным способом сделать это.
Я попытался заменить двоичный файл компилятора своим собственным, который вызывает пользовательский препроцессор и передает выходные данные в исходный компилятор, но это было скорее «доказательством концепции» и, безусловно, не готовым к использованию решением.
Q1: Где мне искать то, чего я пытаюсь достичь?
Q2: и есть ли возможность сделать это в решении без изменения установки Visual C ++ (настраиваемый препроцессор также является частью решения и компилируется перед любым другим проектом)