Мне нужно сгенерировать заголовочный файл C++, который описывает используемый компилятор.Может ли Visual Studio сгенерировать файл конфигурации?
Традиционно мы использовали команду CMake:
configure(${PROJECT_SOURCE_DIR}/configure.h.in ${PROJECT_BINARY_DIR}/configure.h)
, который заменяет все строки, зажатой на «@» (например, @ cxx_compiler_name @) со значением этой переменной в системе CMake сборки.
Нам было предоставлено требование противостоять CMake, так что есть что-то эквивалентное в Visual Studio. Я хотел бы заполнить файл заголовка некоторыми значениями в макросах Visual Studio.
Один трюк заключается в том, чтобы добавить проект C# в том же решении для этой цели генерации кода, добавить configure.h.tt («шаблон T4», они могут выводить любое расширение файла, например .h или .cpp) в этом проект, без какого-либо другого кода на C#, и сконфигурируйте решение, чтобы проект C++ зависел от C#, поэтому он строит после него. Вы можете добавить задачу msbuild в vcxproj, чтобы скопировать сгенерированный файл на C++ или включить его непосредственно в проект C++. Подробнее о T4 здесь: http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –