Это двухэтапный процесс.
Во-первых, вы должны указать CMake использовать Wave в качестве пользовательской команды: используйте CMake add_custom_command
. После того, как вы определили эту команду, она будет вызываться всякий раз, когда сопоставляются зависимости, заданные вами для пользовательской команды.
Во-вторых, вам нужно выяснить все предопределенные макросы и (системные) пути, которые ваш компилятор обычно использует. Wave ничего не знает о конкретном компиляторе. Следовательно, для правильной предварительной обработки файла для конкретного компилятора все (соответствующие) предопределенные макросы (которые обычно предопределены компилятором) и все системные включающие пути (которые обычно известны компилятору по умолчанию) должны быть переданы при вызове Волна. Если поместить все эти параметры в командную строку Wave слишком утомительно (и, вероятно, так и есть), вы можете создать файл параметров для Wave (добавьте его в командную строку с помощью @cfgfile
). Вот пример для MSVC 2005:
-SC:\Program Files (x86)\Microsoft Visual Studio 8\VC\include
-SC:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include
-D_MT
-D_MSC_VER=1400
-D_MSC_FULL_VER=140050727
-D_MSC_EXTENSIONS
-D_M_IX86
Конечно, вы также можете добавить другие параметры для Wave. Наличие разных файлов конфигурации для разных компиляторов должно облегчать управление изнутри CMake.