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