Как создать автоматически сгенерированный код только при изменении генератора или ввода в CMake?
Я работаю над репозиторием исходного кода, который генерирует некоторый код C ++, выполняя скрипт Python, выводящий заголовки и реализацию. Этот код впоследствии скомпилирован и связан с моими библиотеками и исполняемыми файлами. Я знаю, что сгенерированный код изменится, только если выполняется одно из двух условий:
Сам генератор кода меняетсяИзменяется ввод (файл XML) в генераторЯ хочу использовать cmake для управления процессом сборки. На данный момент я используюexecute_process
запустить генератор. Однако, это запускается каждый раз, когда я запускаю cmake, и затрагивает файлы, вызывая перекомпиляцию моего сгенерированного кода и добавляя к моему общему времени компиляции.
Я также хочу убедиться, что сгенерированный код всегда запускается перед моими библиотеками. Другими словами, я хочу, чтобы библиотеки зависели от работы генератора.
Как правильно обращаться с такой ситуацией в cmake? Я видел этот предыдущий ответ: «Получить CMake для выполнения цели в проекте перед сборкой библиотекиMsgstr "Но это зависит от того, какой вывод генератора кода известен заранее. Мой генератор кода сгенерирует переменное количество файлов.