В чистом cmake у вас есть как минимум 3 пути:
1) configure_file
команда
- полезна для простых замен, когда вам нужно только заменить некоторые заполнителив файле шаблона на основе текущей конфигурации проекта;
- cmake автоматически сгенерирует зависимость от файла шаблона и сгенерирует ваш файл при изменениях шаблона.
2) Возможно использовать *Команды 1012 * или FILE STRINGS
и FILE WRITE
для выполнения любого преобразования на этапе настройки cmake.
- возможно любое пользовательское преобразование
Но
- сложнее поддерживать;
- стоит производительности cmake;
- нет автоматического мониторинга изменений файла шаблона.
3) Если абсолютно необходимо сгенерировать этофайла во время сборки, затем вы можете использовать cmake в режиме сценария процесса (cmake -P
) с add_custom_command
:
add_custom_command(OUTPUT vector.c
COMMAND $(CMAKE_COMMAND) -DTEMPLATE:STRING=vector.template -P genscript.cmake
DEPENDS vector.template genscript.cmake)
Где genscript.cmake
- вспомогательный скрипт, который вам нужно написать.Он должен генерировать vector.c
с 1) или 2) подходом, прослушанным выше.