Немедленное создание инструмента для последующего его использования в том же цикле запуска CMake

У меня есть интересная проблема курицы и яйца и потенциальное решение (см. Мой опубликованный ответ), но это решение использует CMake необычным образом. Лучше альтернативы или комментарии будут приветствоваться.

ЭТА ПРОБЛЕМА:

Простая версия проблемы может быть описана как один проект CMake со следующими характеристиками:

Одной из целей сборки является исполняемый файл командной строки, который я назовуMYCOMPисточник которого находится вmycompdir и внесение каких-либо изменений в содержимое этого каталога невозможно.Проект содержит текстовые файлы (я назову ихfoo.my а такжеbar.my) которые нужныMYCOMP запустить на них, чтобы получить набор исходных текстов и заголовков C ++ и некоторыеCMakeLists.txt файлы, определяющие библиотеки, созданные из этих источников.Другие цели сборки в том же проекте должны быть связаны с библиотеками, определенными созданнымиCMakeLists.txt файлы. Эти другие цели также имеют источники, которые#include некоторые из сгенерированных заголовков.

Вы можете думать оMYCOMP как что-то вроде компилятора, а текстовые файлы на шаге 2 - как некие исходные файлы. Это представляет проблему, потому что CMake нуждается вCMakeLists.txt файлы во время настройки, ноMYCOMP недоступен до времени сборки и поэтому недоступен при первом запуске для созданияCMakeLists.txt файлы достаточно рано.

NON-ОТВЕТ:

Как правило, потенциальным решением этой проблемы может быть компоновка надстройки на основе ExternalProject, но вышеприведенное является значительным упрощением реального проекта, с которым я имею дело, и у меня нет свободы разбивать сборку на разные части или выполнять другие большие масштабная перестройка работы.

Ответы на вопрос(1)

Ваш ответ на вопрос