Как настроить этот пользовательский шаг (инструмент?) Для Visual Studio (2015). В основном я хочу предварительный шаг, который изменяет заголовочные файлы (C++)

Я хочу выполнить шаг сборки, который просматривает файл.h, добавляет некоторый код, основанный на некоторых внешних параметрах, и передает полученный файл препроцессору.

Я вижу "Custom Build Step" в свойствах проекта. Кажется, нужен выходной файл. Я просто хочу переслать результаты препроцессору.

Похоже, что пользовательский этап сборки хочет выполнить однократный процесс, а не для каждого файла или по типу файла.

Проблема в том, что я не знаю, как отправить моему внешнему исполняемому файлу обрабатываемый файл (например, "HelloWorld.cpp"). $(InputName) и%(Filename) не заполнены, а в документах указано, что они устарели. Как отправить имя файла на мой внешний исполняемый файл?

Но даже если мне это удастся, я не хочу устанавливать этот файл. Я хочу, чтобы все файлы заголовков проходили этот процесс.

Есть идеи?

Я посмотрел на:

https://msdn.microsoft.com/en-us/library/dd293663.aspx?f=255&MSPPError=-2147217396

https://msdn.microsoft.com/en-us/library/hefydhhy(v=vs.90).aspx

https://msdn.microsoft.com/en-us/library/ff770593(v=vs.140).aspx

работает над отладкой, конфиг x64 на windows.

1 ответ

Решение

Прежде всего, нет, вы не можете изменить файл и передать результаты на следующий этап (который я мог видеть). Мне нужна какая-то система трансформации программ.

Поэтому мне нужен промежуточный файл. Этот файл должен быть добавлен в проект, даже если он перезаписан вашим генератором кода. Я могу связать заголовочные файлы C++ с пользовательским инструментом сборки, и все они будут вызываться один за другим на этапе сборки, указанном на шаге пользовательской сборки. Пользовательский инструмент сборки изменит промежуточный файл (ы), и все в порядке.

Имя VS 2015 для текущего обрабатываемого файла -%(Filename). В более старых версиях это были $(ProjectName) и $(InputName).

Другие вопросы по тегам