2014-09-18 3 views
0

В настоящее время я пытаюсь сделать шину доступной в качестве внешнего инструмента в Visual Studio 2010.метод сделать IncludeDirs доступных для внешнего инструмента

Он имеет проблемы с поиском все включает файл, так как кажется, что ВКЛЮЧИТЬ переменная устанавливается только во время сборки, и я не нашел никакой другой возможности для извлечения файлов include каким-либо образом.

Мой вопрос: Будет ли какой-либо способ извлечь поле IncludeDir из страницы свойств проекта текущего файла, в идеале с дополнительными каталогами VC++?

ответ

1

Обратите внимание, что дополнительные файлы includeIntludeDirectories для каждого файла, так как его можно изменить как для отдельных исходных файлов, так и на уровне проекта, а также если он содержит макросы, он может также оценивать по-разному для каждого исходного файла!

Я не знаком с управлением объектами MSBuild через API, но это используется IDE. Независимо от того, просто ли запущен MSBuild.exe, вам нужно выяснить, какие свойства, условия и т. Д., А затем сообщить вам результат. Если все хорошо себя ведет, вы можете создать цель, которая также использует массив элементов ClCompile, и каким-то образом издает метаданные %(AdditionalIncludeDirectories), например, записывая их в файл или передавая их другому инструменту. Это то, что используется для генерации параметров /I для CL, и вы можете получить одинаковые значения.

Если что-то не так хорошо себя ведет в том, что необходимые значения меняются во время процесса детальной сборки, вам нужно будет получить те же предварительные условия, что и обычная цель ClCompile. Или просто переопределите ClCompile с вашим собственным (последнее определение цели используется), поэтому оно, безусловно, находится в том же контексте.

В любом случае, есть места, где файлы сценариев создания могут автоматически включаться во все проекты, поэтому вы можете добавить туда свой материал или использовать аргумент команды (я думаю) в MSBuild для добавления другого Include.

-John

Смежные вопросы